所谓“周界搜索”,练习搜索的好题,双向宽搜/迭代加深均可,还有很多细节有待完善,判重有比set更优的结构,宽搜还没写,先存一下。

//Writer:GhostCai && His Yellow Duck#include<iostream>
#include<string>
#include<set>
#include<queue>
using namespace std;set<string> book;
set<string> ans;
bool flag;
string tar="034305650121078709X90";
string st,tmp,sr;
int n;void change(int way,string &r){char sav;int i;switch(way){case 1:sav=r[11];for(i=11;i>=1;i--) r[i]=r[i-1];r[0]=sav;break;case 2:sav=r[0];for(i=0;i<=10;i++) r[i]=r[i+1]; r[11]=sav;break;case 3:sav=r[9];for(i=9;i<=19;i++) r[i]=r[i+1];r[20]=sav;break;case 4:sav=r[20];for(i=20;i>=10;i--) r[i]=r[i-1];r[9]=sav;break;}}void make(int dp,int mxdp){if(dp>mxdp) return;cout<<tar<<endl; string pre;for(int i=1;i<=4;i++){pre=tar;change(i,tar);if(!ans.count(tar)) {ans.insert(tar); make(dp+1,mxdp);    }tar=pre;}
}void dfs(int dp,int mxdp){if(dp>mxdp) return;if(flag) return;if(ans.count(tmp)){flag=1;return;}if(book.count(tmp) ) return;
//  cout<<tmp<<endl;int i;string pre;for(i=1;i<=4;i++){pre=tmp;change(i,tmp);//          dfs(dp+1,mxdp);book.insert(tmp); tmp=pre;}
}bool read_s(){int s;for(int i=1;i<=24;i++){cin>>s;if(i>=22) continue;if(s==10) st+='X' ;else st+=char('0'+s); }return true;
}int main(){make(1,8);cin>>n;for(int i=1;i<=n;i++){
//      read_s();cin>>st;
//      cout<<st<<endl;if(st==tar) {cout<<"PUZZLE ALREADY SOLVED\n";st="";continue;}tmp=st;flag=0;for(int i=1;i<=8;i++){dfs(1,i);if(flag){cout<<i<<endl;break;}}if(!flag) cout<<"NO SOLUTION WAS FOUND IN 16 STEPS\n";st="";}}

转载于:https://www.cnblogs.com/ghostcai/p/9247531.html

[UVA] 704 Colour Hash相关推荐

  1. UVA 188 Perfect Hash

    UVA_188 这个题目的难度主要在理解题意上面,理解了题意之后只要按题意进行模拟并找出C即可. #include<stdio.h>#include<string.h>#inc ...

  2. UVa Online Judge 工具網站

    UVa Online Judge 工具網站 转自http://www.csie.ntnu.edu.tw/~u91029/uva.html Lucky貓的ACM園地,Lucky貓的 ACM 中譯題目 M ...

  3. (Step1-500题)UVaOJ+算法竞赛入门经典+挑战编程+USACO

    下面给出的题目共计560道,去掉重复的也有近500题,作为ACMer Training Step1,用1年到1年半年时间完成.打牢基础,厚积薄发. 一.UVaOJ http://uva.onlinej ...

  4. 算法竞赛入门经典+挑战编程+USACO

    下面给出的题目共计560道,去掉重复的也有近500题,作为ACMer Training Step1,用1年到1年半年时间完成.打牢基础,厚积薄发. 一.UVaOJ http://uva.onlinej ...

  5. sicily题目分类

    sicily题目分类 1. 编程入门 2. 数据结构 3. 字符串 4. 排序 5. 图遍历 6. 图算法 7. 搜索:剪枝,启发式搜索 8. 动态规划/递推 9. 分治/递归 10. 贪心 11. ...

  6. [sicily]部分题目分类

    sicily题目分类 1. 编程入门 2. 数据结构 3. 字符串 4. 排序 5. 图遍历 6. 图算法 7. 搜索:剪枝,启发式搜索 8. 动态规划/递推 9. 分治/递归 10. 贪心 11. ...

  7. Sicily 题目分类

    依照自己水平挑着做→ →~~ 1. 编程入门 2. 数据结构 3. 字符串 4. 排序 5. 图遍历 6. 图算法 7. 搜索:剪枝,启发式搜索 8. 动态规划/递推 9. 分治/递归 10. 贪心 ...

  8. 编程题目分类(剪辑)

    1. 编程入门 2. 数据结构 3. 字符串 4. 排序 5. 图遍历 6. 图算法 7. 搜索:剪枝,启发式搜索 8. 动态规划/递推 9. 分治/递归 10. 贪心 11. 模拟 12. 算术与代 ...

  9. 提取了下刘汝佳推荐的题号...

    今天闲来没事上uva oj提取了下刘汝佳推荐的acm题号,原始数据如下: Volume 0. Getting Started    10055 - Hashmat the Brave Warrior ...

最新文章

  1. 解决Chrome浏览器打开虾米音乐网页播放器时的排版问题
  2. information_schema中的所有表和视图
  3. python拷贝文件夹目录和文件_Python 拷贝文件及文件夹到远程主机目录
  4. 微信小程序使用函数的方法
  5. Linux学习总结(35)——CentOS 7.X设置服务开机启动
  6. 第10组17通信三班228网络协议抓包分析
  7. 11、盛最多水的容器(python)
  8. labview csv文件处理_Labview搭建Web服务器
  9. 几款非常好用并免费的项目进度管理软件
  10. Go语言 gorutine和channel协同工作经典应用案例 (Golang经典编程案例)
  11. 原生JavaScript实现jQuery中的fadeIn和fadeOut淡入/出效果
  12. IPSEC对称解密以及非对称加密
  13. 常见的生物识别技术有哪些
  14. 使用vue音频播放器(vue-aplayer)详解
  15. android webview 本地视频播放,javascript – Android WebView不允许加载本地视频文件
  16. 【Translate插件】报错:更新TTK失败,请检查网络连接问题
  17. 计算机应用基础高一考试,计算机应用基础 2018 高一《计算机应用基础》教学方法初探...
  18. jzoj(senior)4208. 【五校联考1day1】线段树什么的最讨厌了
  19. 《Fundamentals Of Computer Graphics》虎书第三版翻译——第六章 矩阵变换
  20. js,前端下载PDF方法总结

热门文章

  1. GNU make manual 翻译( 一百一十一)
  2. HP5200打印机从控制面板手动配置TCP/IP 参数
  3. Repeater简单应用(动态改变内部样式)
  4. 客户端用mstsc不能用一台设备连接终端服务器的解决办法
  5. Archiva 2.2.3 安装运行的时候出现协议版本错误
  6. mod_rewrite
  7. SQLServer之修改CHECK约束
  8. 一键自动化部署web架构
  9. BGP 默认路由和OSPF默认路由的异同
  10. 几种SQL取日期部分的方法