博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
P1274 魔术数字游戏 naive搜索+剪枝
阅读量:6403 次
发布时间:2019-06-23

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

真的naive......

我把所有能剪的枝都剪了才过的。否则就是TTT

还有个很神奇的事:数组作为参数传进递归函数时会造成上一层函数里的数组的改变。这个我TM调了一天。

下面奉上代码

1 #include 
2 #include
3 using namespace std; 4 5 int a[5][5]; 6 int xx,yy; 7 8 9 void dfs(bool b[],int x,int y) 10 { 11 if(y>4) x++,y=1; 12 /* printf("%d %d\n",x,y); 13 for(int i=1;i<=4;i++) 14 { 15 for(int j=1;j<=4;j++) printf("%d ",a[i][j]); 16 printf("\n"); 17 } 18 for(int i=0;i<=3;i++) 19 { 20 for(int j=1;j<=4;j++) printf("%d ",b[i*4+j]); 21 printf("\n"); 22 } 23 printf("\n"); 24 */ 25 if(x==3&&y==4) 26 { 27 a[3][4]=34-a[3][1]-a[3][2]-a[3][3]; 28 if(a[3][4]>16||a[3][4]<1) {
return;} 29 30 if(b[a[3][4]]) {
return;} 31 32 b[a[3][4]]=1; 33 34 for(int i=1;i<=4;i++) 35 { 36 a[4][i]=34-a[1][i]-a[2][i]-a[3][i]; 37 if(a[4][i]>16||a[4][i]<1) 38 { 39 for(int j=1;j
16||a[x][y]<1) {a[x][y]=0;return;} 74 if(b[a[x][y]]) {a[x][y]=0;return;} 75 if(x==2) if(a[1][3]+a[1][4]+a[2][3]+a[2][4]!=34) {a[x][y]=0;return;} 76 b[a[x][y]]=1; 77 dfs(b,x,y+1); 78 b[a[x][y]]=0; 79 a[x][y]=0; 80 return; 81 } 82 if(x==2&&y==2) 83 { 84 a[x][y]=34-a[1][1]-a[1][2]-a[2][1]; 85 if(x==xx&&y==yy&&a[x][y]!=1) return; 86 if(a[x][y]>16||a[x][y]<1) {a[x][y]=0;return;} 87 if(b[a[x][y]]) {a[x][y]=0;return;} 88 b[a[x][y]]=1; 89 dfs(b,x,y+1); 90 b[a[x][y]]=0; 91 a[x][y]=0; 92 return; 93 } 94 if(x==xx&&y==yy) 95 { 96 a[x][y]=1; 97 if(b[1]) return; 98 b[1]=1; 99 dfs(b,x,y+1);100 a[x][y]=0;101 b[1]=0;102 return;103 }104 for(int i=2;i<=16;i++)105 {106 if(b[i]) continue;107 a[x][y]=i;108 b[i]=1;109 110 dfs(b,x,y+1);111 a[x][y]=0;112 b[i]=0;113 }114 return;115 }116 117 118 int main()119 {120 scanf("%d%d",&xx,&yy);121 bool b[34];122 123 memset(b,0,sizeof(b));124 dfs(b,1,1);125 return 0;126 }
—.—

最近开始重温寒假精英班的课程,从打好搜索开始重新打基~~础~~!

转载于:https://www.cnblogs.com/huyufeifei/p/8675767.html

你可能感兴趣的文章
你不知道的JavaScript运算符
查看>>
小程序开发注意事项
查看>>
ECMAScript7规范中的instanceof操作符
查看>>
Hadoop HDFS原理分析
查看>>
【webpack4】基本配置和入门api
查看>>
Mac使用ssh公钥登录Linux
查看>>
【366天】跃迁之路——程序员高效学习方法论探索系列(实验阶段124-2018.02.06)...
查看>>
POJ3070-Fibonacci(矩阵快速幂)
查看>>
[vue插件]基于vue2.x的电商图片放大镜插件
查看>>
标准的组件结构
查看>>
vue——一个页面实现音乐播放器
查看>>
SVG 扬帆起航
查看>>
NET Core-学习笔记(二)
查看>>
职业生涯上的点点滴滴
查看>>
Linux下添加新硬盘,分区及挂载
查看>>
一起来将vscode变成私人定制笔记本
查看>>
Flutter 云音乐
查看>>
RecyclerView实现多type页面
查看>>
个人的web商城网站
查看>>
debian fcitx
查看>>