题意是给出一个3*3的黑白网格,每点击其中一格就会使某些格子的颜色发生转变,求达到目标状态网格的操作。可用BFS搜索解答,用vector储存每次的操作

 #include<bits/stdc++.h>
using namespace std; struct Node{
int num;//储存状态
vector<int> path;//储存操作
};
int visit[];
int click(int i, int num){
int tmp = ;
switch(i){
case :tmp = num ^ ; break;//点击第0位,则0、1、3、4位取反,这里用异或实现,点击其他的同理
case :tmp = num ^ ; break;
case :tmp = num ^ ; break;
case :tmp = num ^ ; break;
case :tmp = num ^ ; break;
case :tmp = num ^ ; break;
case :tmp = num ^ ; break;
case :tmp = num ^ ; break;
case :tmp = num ^ ; break;
}
return tmp;
} Node bfs(int n){
queue<Node> q;
Node front;
front.num = n;
q.push(front);
while(!q.empty()){
front = q.front(); q.pop(); for(int i = ; i < ; i++){
Node tmp = front;
tmp.num = click(i, front.num);
tmp.path.push_back(i+); if(tmp.num == ) return tmp;
else{
if(!visit[tmp.num]){
q.push(tmp);
visit[tmp.num] = ;
}
}
}
}
} int main(){
int n;
cin >> n;
while(n--){
string s;
cin >> s;
int num = ;
for(int i = ; i < s.size(); i++){
if(s[i] == 'b')num = *num + ;
else if(s[i] == 'w') num = *num;
}
memset(visit, , sizeof(visit));
visit[num] = ;
Node tmp = bfs(num);
for(int i = ; i < tmp.path.size(); i++){
cout << tmp.path[i];
}
cout << endl;
}
}

最新文章

  1. Java正则速成秘籍(三)之见招拆招篇
  2. spdk intel
  3. String类实现
  4. 合并master分支到自己的分支
  5. range与xrange之间的差异(转)
  6. Hibernate(六)——多对多关联映射
  7. 用纯css改变select的下拉菜单
  8. iOS9 系统分享调用(UIActivityViewController)
  9. 再回首数据结构—数组(Golang实现)
  10. flask 第五章 WebSocket GeventWebsocket 单聊群聊 握手 解密 加密
  11. win10jdk环境变量配置问题:&#39;javac&#39; 不是内部或外部命令,也不是可运行的程序 或批处理文件。
  12. unigui+fastreport报表打印
  13. 从零开始一起学习SLAM | 学习SLAM到底需要学什么?
  14. delphi 程 序从exe运行改成dll库
  15. git gitlab 使用 提交代码解决冲突
  16. 【应用】for:批量修改文件名
  17. Ubuntu 安装ipython
  18. Xcode真机调试iOS10中Nslog 打印不出东西
  19. 图解利用vmware工具进行虚拟机克隆
  20. python 定义类 学习1

热门文章

  1. [LeetCode] Unique Word Abbreviation 独特的单词缩写
  2. .Net Core Linux centos7行—发布程序到生产环境
  3. C#的接口
  4. 最小生成树---Prim算法和Kruskal算法
  5. Android中利用AIDL机制调用远程服务
  6. Linux服务器配置多台虚拟主机
  7. web前端基础知识-(六)Django基础
  8. 在webapi2中使用OWIN 自寄宿模式
  9. 2016总结--&gt;生活不只有技术和代码,还有诗和远方的田野。
  10. React项目(二):生命游戏