博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[HAOI2008]移动玩具
阅读量:6817 次
发布时间:2019-06-26

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

Time Limit: 10 Sec  Memory Limit: 162 MB

Submit: 2561  Solved: 1430
[][][]

Description

  在一个4*4的方框内摆放了若干个相同的玩具,某人想将这些玩具重新摆放成为他心中理想的状态,规定移动
时只能将玩具向上下左右四个方向移动,并且移动的位置不能有玩具,请你用最少的移动次数将初始的玩具状态移
动到某人心中的目标状态。

Input

  前4行表示玩具的初始状态,每行4个数字1或0,1表示方格中放置了玩具,0表示没有放置玩具。接着是一个空
行。接下来4行表示玩具的目标状态,每行4个数字1或0,意义同上。

Output

  一个整数,所需要的最少移动次数。

Sample Input

1111
0000
1110
0010
1010
0101
1010
0101

Sample Output

4

思路

我们可以算一下,状态数绝对不会超过1<<16,所有放心搜就好了。

代码实现

1 #include
2 #include
3 const int size=2e5+10; 4 char ch[6]; 5 int s,t; 6 void in(int&x){ 7 for(int i=0;i<4;i++){ 8 scanf("%s",ch); 9 for(int j=0;j<4;j++) if(ch[j]-'0') x+=1<<(i*4+j);10 }11 }12 int f[4]={-4,+1,+4,-1};13 int q[size],head,tail;14 int d[size];15 void bfs(){16 q[tail++]=s,d[s]=1;17 int now,nd,nw;18 while(head

 

转载于:https://www.cnblogs.com/J-william/p/8057400.html

你可能感兴趣的文章
Java 实现有序链表
查看>>
zoj 1203 Swordfish
查看>>
手机怎么访问电脑服务器上的网页
查看>>
Python帮助函数调试函数 用于获取对象的属性及属性值
查看>>
制做rpm包工具fpm安装
查看>>
POJ 2253-Frogger (Prim)
查看>>
哪种锻炼方式最能让程序猿远离亚健康? - 强烈推荐
查看>>
基于Metronic的Bootstrap开发框架经验总结(15)-- 更新使用Metronic 4.75版本
查看>>
Kafka(二)-- 安装配置
查看>>
MapReduce&#160;图解流程
查看>>
网络安全基本概念
查看>>
[总结]高效的jQuery代码编写技巧总结
查看>>
有没有想过,也许一辈子你都是个小人物
查看>>
[LeetCode] Wildcard Matching
查看>>
Android开发系列(二十三):实现带图片提示的Toast提示信息框
查看>>
深入解析Windows窗体创建和消息分发
查看>>
AIX下RAC搭建 Oracle10G(六)dbca建库
查看>>
vs code 快捷键中英文对照
查看>>
systemd的运行级别与服务管理命令简介
查看>>
MVC5 一套Action的登录控制流程
查看>>