hdu5012 bfs
比较简单的题 搜索4个方向,维护位子的值。
#include<stdio.h>
#include<string.h>
#include<queue>
using namespace std;
int a[],b[];
int vis[][][][][][];
struct node
{
int x1,x2,x3,x4,x5,x6,step;
};
int bfs()
{
queue<node>q;
node temp;
temp.x1=a[];temp.x2=a[];temp.x3=a[];temp.x4=a[];temp.x5=a[];temp.x6=a[];temp.step=;
q.push(temp);
while(!q.empty())
{
int i;
node tt;
tt=q.front();
q.pop();
if(tt.x1==b[]&&tt.x2==b[]&&tt.x3==b[]&&tt.x4==b[]&&tt.x5==b[]&&tt.x6==b[])
return tt.step;
for(i=;i<=;i++)
{
node ret;
if(i==){//left
ret.x1=tt.x4;ret.x2=tt.x3;ret.x3=tt.x1;
ret.x4=tt.x2;ret.x5=tt.x5;ret.x6=tt.x6;
}
else if(i==){//right
ret.x1=tt.x3;ret.x2=tt.x4;ret.x3=tt.x2;
ret.x4=tt.x1;ret.x5=tt.x5;ret.x6=tt.x6;
}
else if(i==){//front
ret.x1=tt.x6;ret.x2=tt.x5;ret.x3=tt.x3;
ret.x4=tt.x4;ret.x5=tt.x1;ret.x6=tt.x2;
}
else if(i==){//back
ret.x1=tt.x5;ret.x2=tt.x6;ret.x3=tt.x3;
ret.x4=tt.x4;ret.x5=tt.x2;ret.x6=tt.x1;;
}
if(!vis[ret.x1][ret.x2][ret.x3][ret.x4][ret.x5][ret.x6])
{
vis[ret.x1][ret.x2][ret.x3][ret.x4][ret.x5][ret.x6]=;
ret.step=tt.step+;
q.push(ret);
}
}
}
return -;
}
int main()
{
int i,j;
while(scanf("%d%d%d%d%d%d",&a[],&a[],&a[],&a[],&a[],&a[])!=EOF)
{
for(i=;i<=;i++)
scanf("%d",&b[i]); for(i=;i<=;i++)
for(j=;j<=;j++)
for(int k=;k<=;k++)
for(int f=;f<=;f++)
for(int g=;g<=;g++)
for(int h=;h<=;h++)
vis[i][j][k][f][g][h]=;
int ans=bfs();
if(ans==-)
printf("-1\n");
else printf("%d\n",ans);
}
}
hdu5012 bfs的更多相关文章
- HDU5012:Dice(bfs模板)
http://acm.hdu.edu.cn/showproblem.php?pid=5012 Problem Description There are 2 special dices on the ...
- hdu 5012 bfs --- 慎用STL 比方MAP判重
http://acm.hdu.edu.cn/showproblem.php?pid=5012 发现一个问题 假设Sting s = '1'+'2'+'3'; s!="123"!!! ...
- 图的遍历(搜索)算法(深度优先算法DFS和广度优先算法BFS)
图的遍历的定义: 从图的某个顶点出发访问遍图中所有顶点,且每个顶点仅被访问一次.(连通图与非连通图) 深度优先遍历(DFS): 1.访问指定的起始顶点: 2.若当前访问的顶点的邻接顶点有未被访问的,则 ...
- 【BZOJ-1656】The Grove 树木 BFS + 射线法
1656: [Usaco2006 Jan] The Grove 树木 Time Limit: 5 Sec Memory Limit: 64 MBSubmit: 186 Solved: 118[Su ...
- POJ 3278 Catch That Cow(bfs)
传送门 Catch That Cow Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 80273 Accepted: 25 ...
- POJ 2251 Dungeon Master(3D迷宫 bfs)
传送门 Dungeon Master Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 28416 Accepted: 11 ...
- Sicily 1215: 脱离地牢(BFS)
这道题按照题意直接BFS即可,主要要注意题意中的相遇是指两种情况:一种是同时到达同一格子,另一种是在移动时相遇,如Paris在(1,2),而Helen在(1,2),若下一步Paris到达(1,1),而 ...
- Sicily 1048: Inverso(BFS)
题意是给出一个3*3的黑白网格,每点击其中一格就会使某些格子的颜色发生转变,求达到目标状态网格的操作.可用BFS搜索解答,用vector储存每次的操作 #include<bits/stdc++. ...
- Sicily 1444: Prime Path(BFS)
题意为给出两个四位素数A.B,每次只能对A的某一位数字进行修改,使它成为另一个四位的素数,问最少经过多少操作,能使A变到B.可以直接进行BFS搜索 #include<bits/stdc++.h& ...
随机推荐
- At least one object must implement IComparable
中文:必须至少有一个对象实现 IComparable. 序列排序时报这个错误 lstReports.OrderBy(r => new { r.DepartmentName, r.ReportNo ...
- Python天猫淘宝评论爬虫
说明 由于Github 打包的exe某些文件上传被.gitignore了,所以不提供windows二进制包 https://github.com/hunterhug/taobaocomment 一个抓 ...
- POJ 1442 Black Box -优先队列
优先队列..刚开始用蠢办法,经过一个vector容器中转,这么一来一回这么多趟,肯定超时啊. 超时代码如下: #include <iostream> #include <cstdio ...
- LoadRunner 11 完整卸载
实现彻底删除LR的步骤 打开任务管理器,关闭所有LR相关的进程 请备份好所有LR脚本 进入控制面板-添加与删除,找到HP LoadRunner并点击删除按钮,若出现提示“shared DLLs”消息框 ...
- 转: 关于Linux与JVM的内存关系分析
转自: http://tech.meituan.com/linux-jvm-memory.html Linux与JVM的内存关系分析 葛吒2014-08-29 10:00 引言 在一些物理内存为8g的 ...
- C#中NULL,"",DBNULL,String.Empty,Convert.IsDBNull()的区别
C#中的空值的判断较麻烦,不象在VB6中那么简单,这些各种空值的判断和理解对不熟悉的人来说,可能很麻烦,现就我在使用过程中的一点体会和大家共同分享. (1)NULL null 关键字是表示不引用任何对 ...
- CSS3中的字体rem
rem和em都是相对单位,em相对父元素的font-size来计算,而rem是根据文档根元素(html)的font-size大小来计算的 通常将html的字体大小设为62.5%(等于10px),当然也 ...
- MYSQL密码设置
当MYSQL安装成功后,root用户的密码默认是空的,有三种方式可以重新设置root账号的密码 1.用root 进入mysql后 mysql>set password =password('你的 ...
- 使用EasyUI要引入哪些文件
使用EasyUI,一般需要导入如下文件 <link rel="stylesheet" type="text/css" href="../reso ...
- 012医疗项目-模块一:统一异常处理器的设计思路及其实现(涉及到了Springmvc的异常处理流程)
我们上一篇文章是建立了一个自定义的异常类,来代替了原始的Exception类.在Serice层抛出异常,然后要在Action层捕获这个异常,这样的话在每个Action中都要有try{}catch{}代 ...