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& ...
随机推荐
- codeforces 480A A. Exams(贪心)
题目链接: A. Exams time limit per test 1 second memory limit per test 256 megabytes input standard input ...
- python读取数据库数据有乱码怎么解决?
http://blog.sina.com.cn/s/blog_6826662b0100yeze.html 简单暴力,直接上代码 conn = MySQLdb.connect(host = " ...
- HDU 4419 Colourful Rectangle --离散化+线段树扫描线
题意: 有三种颜色的矩形n个,不同颜色的矩形重叠会生成不同的颜色,总共有R,G,B,RG,RB,GB,RGB 7种颜色,问7种颜色每种颜色的面积. 解法: 很容易想到线段树扫描线求矩形面积并,但是如何 ...
- Unity3D实现赛车的灯光效果
车灯的需求 在赛车游戏中,遇到灯光弱的环境,赛车车可以打开前车灯照亮路边及前方,那一定是非常酷! 也见过虚拟现实项目通过Unity模拟汽车车灯的效果,但是我还没有想到好的思路来实现. 我的思路 使用( ...
- QTP基础学习(一)安装目录介绍
上一篇介绍了QTP 10 安装,安装完成后就可以看到文件的目录了,这里主要介绍以下几个目录及作用. 简单介绍部分目录 1.addins:插件包 2.bin目录:可执行程序,这里存储了很多配置文件.运行 ...
- Eclipse去除JavaScript验证错误
这篇文章主要是对Eclipse去除js(JavaScript)验证错误进行了介绍.在Eclipse中,js文件常常会报错.可以通过如下几个步骤解决 第一步: 去除eclipse的JS验证: 将wind ...
- mysql乱码的好文
1. http://www.blogjava.net/wldandan/archive/2007/09/04/142669.html 2. http://www.111cn.net/database/ ...
- 万向节死锁 gimbal lock
,如下图一,把灰色箭头想象成是一架飞机,红,绿蓝三个圈看作是三个外围控制器,外圈带动所有里圈运动,里圈的运动不影响外圈. 1,首先,绕Y轴旋转(旋转绿圈),来确定前进的方向.这时红圈与蓝圈都跟着旋转. ...
- php基础32:正则匹配-修饰符
<?php //正则表达式--修饰符一般放在//的外面 //1. i 表示不区分大小写 $model = "/php/"; $string = "php" ...
- ibatis动态查询条件
ibatis的调试相对困难,出错的时候主要依据是log4生成的log文件和出错提示,这方面要能比较熟练的看懂. 下面这个配置基本上包含了最复杂的功能:分页\搜索\排序\缓存\传值Hash表\返回has ...