博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
BFS之三(单向bfs和康托压缩)
阅读量:4633 次
发布时间:2019-06-09

本文共 1539 字,大约阅读时间需要 5 分钟。

//poj 1077 Eight #include 
//单向bfs和康托压缩 #include
using namespace std; bool visited[1000000]; int fac[]={
1,1,2,6,24,120,720,5040,40320,362880}; //9!表 int cantor(int arr[]) {
int temp,num=1; //当排列为1 2 3 4 5 6 7 8 9时康托值等于1 for(int i=0;i<9;++i) {
temp=0; for(int j=i+1;j<9;++j) if(arr[j]
>ch; if(ch=='x') arr[i]=9,table[0].sub=i; else arr[i]=int(ch-48); } table[0].pre=-1;table[0].num=to_num(arr); visited[cantor(arr)]=1; int head=0,rear=0; while(head<=rear) {
to_arr(arr,table[head].num); if(cantor(arr)==1) //当排列为1 2 3 4 5 6 7 8 9时康托值等于1 {
string str; int i=head; while(i!=0) {
str.insert(str.begin(),table[i].ch); i=table[i].pre; } cout<
<
=0&&tx<3&&ty>=0&&ty<3) {
swap(arr[x*3+y],arr[tx*3+ty]); if(visited[cantor(arr)]==0) {
++rear; table[rear].num=to_num(arr); table[rear].ch=pos[i]; table[rear].pre=head; table[rear].sub=tx*3+ty; visited[cantor(arr)]=1; } swap(arr[x*3+y],arr[tx*3+ty]); } } head++; } cout<<"unsolvable\n"; return 0; }

  

转载于:https://www.cnblogs.com/mjc467621163/archive/2011/08/22/2149138.html

你可能感兴趣的文章
把mysql 中的字符gb2312 改为gbk的方法
查看>>
使用Struts2标签遍历集合
查看>>
angular.isUndefined()
查看>>
第一次软件工程作业(改进版)
查看>>
WPF的图片操作效果(一):RenderTransform
查看>>
网络流24题-飞行员配对方案问题
查看>>
Jenkins 2.16.3默认没有Launch agent via Java Web Start,如何配置使用
查看>>
Excel的数据分析—排位与百分比
查看>>
讯飞语音识别Android-Demo
查看>>
UML for Java Programmers之dx实战
查看>>
引入css的四种方式
查看>>
Mysql蠕虫复制
查看>>
pfSense 2.4.3 发布,包含重要的安全修复补丁
查看>>
centos7+ansible自动化工具使用
查看>>
iOS开发UI篇—transframe属性(形变)
查看>>
3月7日 ArrayList集合
查看>>
正则替换
查看>>
jsp 环境配置记录
查看>>
快速学习的方法论
查看>>
线程之线程标识
查看>>