【zzulioj 1922】
发布日期:2021-11-04 12:58:42
浏览次数:6
分类:技术文章
本文共 1456 字,大约阅读时间需要 4 分钟。
Description
给定一个4*4的01棋盘,1代表棋子,0代表空格,棋子1每次可以移动到相邻上下左右四个位置的空格。 然后再给定你目标棋盘,问你最少在多少步能把当前棋盘变成目标棋盘状态。Input
第一行输入一个整数t,代表有t组测试数据。
接下来给出只有0和1的4*4的当前棋盘和4*4的目标棋盘,中间有一个空行。Output
输出一个整数表示最小的步数,若不能到达输出-1.
Sample Input
1
0001 0011 1100 11111011
1101 0000 1101 Sample Output8
一开始 想用DFS~~奈何 ~~
只能由原来的棋盘去移成最后的结果棋盘,不能按结果棋盘,去由原棋盘去移成~~
#includechar pa[5][5],ma[5][5];int pb[5][5],mb[5][5];int abs(int a){ if(a<0) return -a;}int main(){ int T,i,j,ans,sum,sum1,sum2,ml,nl,kml,knl; scanf("%d",&T); while(T--) { for(i=0;i<4;i++) for(j=0;j<4;j++) pb[i][j]=mb[i][j]=0; for(i=0;i<4;i++) scanf("%s",pa[i]); for(i=0;i<4;i++) scanf("%s",ma[i]); sum1=sum2=0; for(i=0;i<4;i++) for(j=0;j<4;j++) { if(pa[i][j]=='1'&&ma[i][j]=='0'){ pb[i][j]=1; sum1++; } if(pa[i][j]=='0'&&ma[i][j]=='1'){ mb[i][j]=1; sum2++; } } if(sum1==sum2) { ans=0; for(i=0;i<4;i++) for(j=0;j<4;j++) { if(pb[i][j]==1) { sum=0x3f3f3f3f; for(ml=0;ml<4;ml++) for(nl=0;nl<4;nl++) { if(mb[ml][nl]==1) if(abs(ml-i)+abs(nl-j)
转载地址:https://blog.csdn.net/WYK1823376647/article/details/52243101 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
关注你微信了!
[***.104.42.241]2024年04月03日 17时42分07秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
AI算法之Encoder-Decoder 和 Seq2Seq
2019-04-26
AI算法之Attention机制
2019-04-26
人体口罩佩戴检测实战
2019-04-26
[实战]200类鸟类细粒度图像分类
2019-04-26
【实战】英文垃圾短信分类
2019-04-26
FFmpeg初遇见_基本命令
2019-04-26
Urbansound8k声音分类深度学习实战
2019-04-26
pytorch版本下的yolov3训练实现火焰检测
2019-04-26
yolov4训练自己的数据集实现安全帽佩戴检测
2019-04-26
EfficientDet训练自己的数据集实现抽烟检测
2019-04-26
【工具篇】10分钟快速上手git与github
2019-04-26
【开发篇】10分钟快速上手spring boot
2019-04-26
【开发篇】10分钟快速spring boot+react前后端分离
2019-04-26
【开发篇】10分钟快速上手spring boot+mybatis增删改查
2019-04-26
【Leetcode刷题篇】leetcode203 移除链表元素
2019-04-26
【Leetcode刷题篇】leetcode108 将有序数组转换为二叉搜索树
2019-04-26
【Leetcode刷题篇】leetcoe109 有序链表转换二叉搜索树
2019-04-26
【Leetcode刷题篇】leetcode938 二叉搜索树的范围和
2019-04-26
【Leetcode刷题篇】leetcode235 二叉搜索树的最近公共祖先
2019-04-26
【Leetcode刷题篇】leetcode236 二叉树的最近公共祖先
2019-04-26