[HAOI2008]移动玩具
这又是一道神奇的搜索题。。。只要记录每种状态。。。然后暴力判断这种状态往后一步的情况。。。
广搜出最优解即可。。。
呆码:
#include<iostream> #include<cstdio> #include<queue> #include<cstring> using namespace std;int dx[5]={0,0,1,0,-1}; int dy[5]={0,1,0,-1,0}; int dis[100010]; char st[5]; bool use[100010];struct asd{int a[5][5],num;int sum() {int tot=0;for(int i=1;i<=4;i++)for(int j=1;j<=4;j++)tot+=(a[i][j]<<4*(i-1)+j-1);return tot;}void read() {for(int i=1;i<=4;i++){scanf("%s",st);for(int j=1;j<=4;j++)a[i][j]=(st[j-1]=='1' ? 1 : 0);}num=sum();} }s,t;inline int BFS() {memset(dis,50,sizeof(dis));queue <asd> q;q.push(s); dis[s.num]=0; use[s.num]=1;while(!q.empty()){asd now=q.front(); q.pop();for(int x=1;x<=4;x++)for(int y=1;y<=4;y++)if(now.a[x][y])for(int i=1;i<=4;i++){int xx=x+dx[i];int yy=y+dy[i];if(xx>=1 && xx<=4 && yy>=1 && yy<=4 && !now.a[xx][yy]){swap(now.a[xx][yy],now.a[x][y]);asd u=now; u.num=u.sum();swap(now.a[xx][yy],now.a[x][y]);if(!use[u.num]){dis[u.num]=dis[now.num]+1;if(u.num==t.num) return dis[t.num];q.push(u); use[u.num]=1;}}}}return dis[t.num]; }int main() {s.read(); t.read();if(s.num==t.num) printf("0\n");else printf("%d\n",BFS()); }
代码
转载于:https://www.cnblogs.com/zzzyc/p/9299741.html
[HAOI2008]移动玩具相关推荐
- bzoj 1054: [HAOI2008]移动玩具.cpp
1054: [HAOI2008]移动玩具 Time Limit: 10 Sec Memory Limit: 162 MB Submit: 2260 Solved: 1254 [Submit][St ...
- [bzoj1054][HAOI2008]移动玩具
题意:在一个4*4的方框内摆放了若干个相同的玩具,某人想将这些玩具重新摆放成为他心中理想的状态,规定移动 时只能将玩具向上下左右四个方向移动,并且移动的位置不能有玩具,请你用最少的移动次数将初始的玩具 ...
- BZOJ 1054: [HAOI2008]移动玩具(bfs)
题面: https://www.lydsy.com/JudgeOnline/problem.php?id=1054 题解: 将每一种状态十六位压成二进制,然后bfs..不解释.. p.s.注意特判初始 ...
- python中关键字参数含义_python中接受任意关键字的参数
1.*args args是非关键字参数,可以理解为形参,为了方便记忆我理解它是arguments的缩写. 2.*kwargs kwargs是键值对参数,为了方便记忆我理解它是key word argu ...
- 提高篇 第一部分 基础算法 第4章 广搜的优化技巧
LOJ 一本通一句话题解系列: - ~victorique~ - 博客园 LOJ 一本通一句话题解系列: - ~victorique~ - 博客园 「一本通 1.4 例 1」电路维修 电路维修 (广搜 ...
- 语法入门*算法入门题单
作者:王清楚 链接:https://ac.nowcoder.com/discuss/817596?type=101&order=0&pos=1&page=4&chann ...
- 【新手上路】语法入门算法入门题单
作者:王清楚 链接:[新手上路]语法入门&算法入门题单_ACM竞赛_ACM/CSP/ICPC/CCPC/比赛经验/题解/资讯_牛客竞赛OJ_牛客网 来源:牛客网 介绍:本题单分为语法入门和算法 ...
- BZOJ刷题记录---提高组难度
BZOJ刷题记录---提高组难度 总目录详见https://blog.csdn.net/mrcrack/article/details/90228694 序号 题号 算法 思想难度 实现难度 总难度 ...
- OI 刷题记录——每周更新
每周日更新 2016.05.29 UVa中国麻将(Chinese Mahjong,Uva 11210) UVa新汉诺塔问题(A Different Task,Uva 10795) NOIP2012同余 ...
最新文章
- Latex注释快捷键
- 基于Leaflet实现路径轨迹回放功能
- MFC之CAsyncSocket详解
- PHP操作MongoDB GridFS 存储文件
- ArcGIS API for JS4.7加载FeatureLayer,点击弹出信息并高亮显示
- x的奇幻之旅 (史蒂夫·斯托加茨 著)
- .net 按行切割数组
- JAVA 线程池的分析和使用
- 华为太极magisk安装教程_小米手机官方REC装面具(magisk)教程
- Adobe Photoshop 2021 22.1.1.138中文版(win/mac)
- 误人子弟的网络,谈谈HTTP协议中的短轮询、长轮询、长连接和短连接
- Android自定义view之网易云推荐歌单界面
- css3地球自转,CSS3 月亮围绕地球转动的3D动画
- 《漩涡中的中国首富李彦宏》
- 前端一面又挂了?学习总结经验,别再让面试止步一面!
- MyZip--专业mac压缩软件
- A Novel Task Allocation for Maximizing Reliability Considering Fault-Tolerant in VANET ... 学习笔记
- twig模板引擎使用php,Twig模板引擎用法入门教程
- 无人车智能挑战赛自主巡航篇
- 全球美容手术数量持续上升,隆胸、吸脂、眼睑手术、腹部整形和鼻整形占前五...
热门文章
- (Z)标准电阻值的来历及色环电阻值定义
- SUSE Linux 维护笔记二
- 删掉被2345篡改的IE起始页
- ECMAScript5 严格模式,JSON,及其它
- ces测试数据测试ces测试数据测试ces测试数据测试ces测试数据测试ces测试数据测试ces测试数据测试ces测试数据测试再次测试
- 线性序列机与串行接口ADC驱动设计与验证
- 模拟集成电路的经典教材
- 假设以带头结点的循环链表表示队列_关于反转链表,看这一篇就够了!
- pid调节软件_非常实用的PID算法和PID控制原理
- java 验证码_java学习之web基础(6):使用Response的输出流在页面输出验证码