比较简单的题 搜索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的更多相关文章

  1. HDU5012:Dice(bfs模板)

    http://acm.hdu.edu.cn/showproblem.php?pid=5012 Problem Description There are 2 special dices on the ...

  2. hdu 5012 bfs --- 慎用STL 比方MAP判重

    http://acm.hdu.edu.cn/showproblem.php?pid=5012 发现一个问题 假设Sting s = '1'+'2'+'3'; s!="123"!!! ...

  3. 图的遍历(搜索)算法(深度优先算法DFS和广度优先算法BFS)

    图的遍历的定义: 从图的某个顶点出发访问遍图中所有顶点,且每个顶点仅被访问一次.(连通图与非连通图) 深度优先遍历(DFS): 1.访问指定的起始顶点: 2.若当前访问的顶点的邻接顶点有未被访问的,则 ...

  4. 【BZOJ-1656】The Grove 树木 BFS + 射线法

    1656: [Usaco2006 Jan] The Grove 树木 Time Limit: 5 Sec  Memory Limit: 64 MBSubmit: 186  Solved: 118[Su ...

  5. POJ 3278 Catch That Cow(bfs)

    传送门 Catch That Cow Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 80273   Accepted: 25 ...

  6. POJ 2251 Dungeon Master(3D迷宫 bfs)

    传送门 Dungeon Master Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 28416   Accepted: 11 ...

  7. Sicily 1215: 脱离地牢(BFS)

    这道题按照题意直接BFS即可,主要要注意题意中的相遇是指两种情况:一种是同时到达同一格子,另一种是在移动时相遇,如Paris在(1,2),而Helen在(1,2),若下一步Paris到达(1,1),而 ...

  8. Sicily 1048: Inverso(BFS)

    题意是给出一个3*3的黑白网格,每点击其中一格就会使某些格子的颜色发生转变,求达到目标状态网格的操作.可用BFS搜索解答,用vector储存每次的操作 #include<bits/stdc++. ...

  9. Sicily 1444: Prime Path(BFS)

    题意为给出两个四位素数A.B,每次只能对A的某一位数字进行修改,使它成为另一个四位的素数,问最少经过多少操作,能使A变到B.可以直接进行BFS搜索 #include<bits/stdc++.h& ...

随机推荐

  1. 《TCP/IP详解 卷一》读书笔记-----TCP超时重传

    1.TCP提供的是可靠传输,它通过接收方发送一个确认报文ACK来提供这种可靠性.但是数据报文和确认报文都可能会丢失,所以TCP会给发出的数据报文设置一个时间,如果超时了则进行重传 2.Karn's A ...

  2. 【软件】图文解释XCode常用快捷键的使用

    一.关于运行调试 1.运行,停止,都在工具栏的Product里. Command + R  运行. Command + .  停止 2.F6单步调试.F7跳入,F8继续, 和Eclipse,VS类似 ...

  3. linux强制用户下线

    Linux系统为多用户多任务系统,因此允许多个用户登录到系统,有时候,我们需要强制某些用户下线. 前提:必须是root权限操作:(1)使用who查看目前有哪些用户登录了服务器,见下图 [root@vm ...

  4. java 12-1 StringBuffer类

    线程安全(多线程讲解) 安全 -- 同步 -- 数据是安全的--效率低一些 不安全 -- 不同步 -- 数据不安全--效率高一些 安全和效率问题是永远困扰我们的问题. 安全:医院的网站,银行网站 效率 ...

  5. 25个实用的jquery技巧

    1. 去除页面的右键菜单   $(document).ready(function(){ $(document).bind(“contextmenu”,function(e){returnfalse; ...

  6. sql语句原则

    整理尘封的文档,sql语句方面的几条原则再次回顾一下.更详细版本 1. 尽量使用临时表扫描替代全表扫描: 2. 抛弃in和not in语句,使用exists和not exists替代:IN和EXIST ...

  7. 转载:关于 WebBrowser只对浏览器外应用程序以及在Internet Explorer 中以提升权限运行的应用程序启用

    我是根据很多大神写的博客,以及我自己在做项目的时候做的关于提升Silverlight 中WebBrowser 提升信任的问题的总结: 1)选中Silverlight主程序,右键“属性”---“Sliv ...

  8. log4j发送邮件乱码

    Log4J发日志邮件给多个接收者及标题.正文乱码问题 以前开发的系统没有单独的日志管理,所有的日志统一输出到tomcat后台一个文件里,不几天就是好几G,现在要整体增加一个Log4J管理日志的功能,其 ...

  9. IBatis.net动态SQL语句

    在学习动态SQL语句之前,首先必须对条件查询有一定了解,先来学习如何向IBatis.Net的映射文件里传入参数. 一.条件查询 1.传递单个参数 如根据Id查询: <select id=&quo ...

  10. Easyui Combotree问题及其相关

    Easyui的setValue方法无效 今天在开发项目的时候,遇到第一个很奇怪的问题:EasyUI的setValue方法无效. $('#department_parent').combotree('s ...