【BZOJ1054】移动玩具(搜索)
【BZOJ1054】移动玩具(搜索)
题面
题解
这种小清新搜索题写出来好舒服啊。
要是原来的我来写代码肯定又臭又长吧。。
#include<cstdio>
#include<queue>
using namespace std;
queue<int> Q;
int pw[16],st[1<<16];
bool vis[1<<16];
void add(int u,int v){if(vis[v])return;vis[v]=true;st[v]=st[u]+1;Q.push(v);}
int main()
{
	int S=0,x,T=0;
	for(int i=0;i<16;++i)pw[i]=1<<i;
	for(int i=0;i<16;++i)scanf("%1d",&x),S|=x<<i;
	for(int i=0;i<16;++i)scanf("%1d",&x),T|=x<<i;
	Q.push(S);vis[S]=true;
	while(!Q.empty())
	{
		int u=Q.front();Q.pop();
		for(int i=0;i<16;++i)
		{
			if(!(u&pw[i]))continue;
			if(i>3&&!(u&pw[i-4]))add(u,u^pw[i-4]^pw[i]);
			if(i<12&&!(u&pw[i+4]))add(u,u^pw[i+4]^pw[i]);
			if(i%4&&!(u&pw[i-1]))add(u,u^pw[i-1]^pw[i]);
			if(i%4!=3&&!(u&pw[i+1]))add(u,u^pw[i+1]^pw[i]);
		}
		if(vis[T])break;
	}
	printf("%d\n",st[T]);
	return 0;
}
【BZOJ1054】移动玩具(搜索)的更多相关文章
- [BZOJ1054] 移动玩具
		1054: [HAOI2008]移动玩具 Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 2741 Solved: 1537[Submit][Stat ... 
- BZOJ ac100题存档
		不知不觉AC100题了,放眼望去好像都是水题.在这里就做一个存档吧(特别感谢各位大神尤其是云神http://hi.baidu.com/greencloud和丽洁姐http://wjmzbmr.com/ ... 
- 【BZOJ1054】[HAOI2008]移动玩具
		[BZOJ1054][HAOI2008]移动玩具 题面 bzoj 洛谷 题解 太\(sb\)了,不想写了,直接点开洛谷题面单击右边蓝色按钮题解即可 
- 【BZOJ1054】[HAOI2008]移动玩具 BFS
		[BZOJ1054][HAOI2008]移动玩具 Description 在一个4*4的方框内摆放了若干个相同的玩具,某人想将这些玩具重新摆放成为他心中理想的状态,规定移动 时只能将玩具向上下左右四个 ... 
- bzoj1054: [HAOI2008]移动玩具
		hash+bfs:要注意特殊情况.(似乎连sort.lower_bound都不用数据小直接判重了... #include<cstdio> #include<cstring> # ... 
- [BZOJ 1055] [HAOI2008] 玩具取名 【记忆化搜索】
		题目链接:BZOJ - 1055 题目分析 这种类似区间 DP 的记忆化搜索都是很相近的,比如字符串压缩和字符串扩展都差不多. 都是将现在 Solve 的区间分成子区间,再求解子区间. 这道题 Sol ... 
- BZOJ 1055: [HAOI2008]玩具取名(记忆化搜索)
		http://www.lydsy.com/JudgeOnline/problem.php?id=1055 题意: 思路:记忆化搜索. #include<iostream> #include ... 
- bzoj1054: [HAOI2008]移动玩具 状压+爆搜即可
		题意:在一个4*4的方框内摆放了若干个相同的玩具,某人想将这些玩具重新摆放成为他心中理想的状态,规定移动时只能将玩具向上下左右四个方向移动,并且移动的位置不能有玩具,请你用最少的移动次数将初的玩具状态 ... 
- BZOJ1055[HAOI2008]玩具取名  【区间dp + 记忆化搜索】
		题目 某人有一套玩具,并想法给玩具命名.首先他选择WING四个字母中的任意一个字母作为玩具的基本名字.然后 他会根据自己的喜好,将名字中任意一个字母用“WING”中任意两个字母代替,使得自己的名字能够 ... 
随机推荐
- .net中 多线程  笔记(基础)
			1. 在进程中可以有多个线程同时执行代码.进程之间是相对独立的,一个进程无法访问另一个进程的数据(除非利用分布式计算方式),一个进程运行的失败也不会影响其他进程的运行,Windows系统就是利用进程把 ... 
- Received non-all-whitespace CHARACTERS or CDATA event in nextTag(). ,无法整齐打印验证错误。 解析XML文档出现的问题
			在启动keyCloak,想要在standAlone模式下切换数据库,修改standAlone.xml文件时. 在bin/目录下启动standAlone模式出现错误: 10:07:24,799 INFO ... 
- 新手Python第三天(函数)
			Python 函数的创建 def func2(): print('haha') # 函数的返回值 # 函数的返回值,没有定义返回None, # 有一个返回值返回这个object(可以返回一个函数对象) ... 
- To Do List | 事实上是咕咕咕计划
			1.写一两篇关于数学的博文 类似于这种反演啥的或者说是FFT一些更本质的东西趴...反正是我根本不会的东西 再写一点自己会的东西趴...(好像也只有什么课本上的东西讲讲了,不过应该会写一些自己曾经发现 ... 
- NO.3_1:自学python之路------番外:第三方库安装、numpy
			引言 Python因为pip的存在,使得第三方库的发布和获取都比较方便.并且Python对跨平台的支持,使得其相较于C++,Java更加方便使用.在本文中,将会介绍在Windows中安装第三方库的方法 ... 
- Windows下 搭建redis集群
			Windows下搭建redis集群教程 一,redis集群介绍 Redis cluster(redis集群)是在版本3.0后才支持的架构,和其他集群一样,都是为了解决单台服务器不够用的情况,也防止了主 ... 
- java 实现验证码功能
			所需文件以及技术: · SecurityUtil.java (后面我会复制给大家) · 图像处理技术 · 向客户端输出io流 一,实现的原理,当视图页面加载的时候通过<img >元素的 ... 
- kali linux执行apt-get update失败(数字签名过期)
			想要安装某个软件,执行apt-get update 失败,出现下面的错误: 自己查看了更新源是没有问题的,根据提示的错误google了一下,发现是数字签名过期了. 执行下面命令: apt-key ad ... 
- Array.Copy 数据是克隆吗?
			偶然看到 Array.Copy 方法的时候,想到,它是否是克隆,又是否是深克隆. 做了一个测试 public class abc { public string hello; } [TestMetho ... 
- 2017-2018-2 1723 『Java程序设计』课程 结对编程练习-四则运算-最后阶段
			2017-2018-2 1723 『Java程序设计』课程 结对编程练习-四则运算-最后阶段 最后的一周,时间越来越紧张,因为之前的拖沓和一些事情的耽误,导致了如今的紧张,这一周应该是我们小组效率最高 ... 
