2014西安網路賽1006||hdu5012 bfs
http://acm.hdu.edu.cn/showproblem.php?pid=5012
Problem Description
There are 2 special dices on the table. On each face of the dice, a distinct number was written. Consider a1.a2,a3,a4,a5,a6 to be numbers written on top face, bottom face, left face, right face,
front face and back face of dice A. Similarly, consider b1.b2,b3,b4,b5,b6 to be numbers on specific faces of dice B. It’s guaranteed that all numbers written on dices are integers no smaller
than 1 and no more than 6 while ai ≠ aj and bi ≠ bj for all i ≠ j. Specially, sum of numbers on opposite faces may not be 7.
At the beginning, the two dices may face different(which means there exist some i, ai ≠ bi). Ddy wants to make the two dices look the same from all directions(which means for all i, ai = bi) only by the following four rotation operations.(Please read the picture for more information)
Now Ddy wants to calculate the minimal steps that he has to take to achieve his goal.
At the beginning, the two dices may face different(which means there exist some i, ai ≠ bi). Ddy wants to make the two dices look the same from all directions(which means for all i, ai = bi) only by the following four rotation operations.(Please read the picture for more information)
Now Ddy wants to calculate the minimal steps that he has to take to achieve his goal.
Input
There are multiple test cases. Please process till EOF.
For each case, the first line consists of six integers a1,a2,a3,a4,a5,a6, representing the numbers on dice A.
The second line consists of six integers b1,b2,b3,b4,b5,b6, representing the numbers on dice B.
For each case, the first line consists of six integers a1,a2,a3,a4,a5,a6, representing the numbers on dice A.
The second line consists of six integers b1,b2,b3,b4,b5,b6, representing the numbers on dice B.
Output
For each test case, print a line with a number representing the answer. If there’s no way to make two dices exactly the same, output -1.
Sample Input
1 2 3 4 5 6
1 2 3 4 5 6
1 2 3 4 5 6
1 2 5 6 4 3
1 2 3 4 5 6
1 4 2 5 3 6
Sample Output
0
3
-1
#include <stdio.h>
#include <string.h>
#include <iostream>
#include <math.h>
#include <queue>
#include <stack>
#include <vector>
#include <algorithm>
using namespace std;
typedef long long LL;
const int INF=0x3f3f3f3f;
const int N=10005;
bool v[7][7][7][7][7][7];
struct note
{
int a1,a2,a3,a4,a5,a6;
}z;
note L(note x)
{
note y;
y.a2=x.a5;
y.a6=x.a2;
y.a1=x.a6;
y.a5=x.a1;
y.a3=x.a3;
y.a4=x.a4;
return y;
}
note R(note x)
{
note y;
y.a5=x.a2;
y.a2=x.a6;
y.a6=x.a1;
y.a1=x.a5;
y.a3=x.a3;
y.a4=x.a4;
return y;
}
note F(note x)
{
note y;
y.a2=x.a3;
y.a4=x.a2;
y.a1=x.a4;
y.a3=x.a1;
y.a5=x.a5;
y.a6=x.a6;
return y;
}
note B(note x)
{
note y;
y.a3=x.a2;
y.a2=x.a4;
y.a4=x.a1;
y.a1=x.a3;
y.a5=x.a5;
y.a6=x.a6;
return y;
}
bool judge(note x)
{
//printf("5555\n");
// printf("%d %d %d %d %d %d\n",x.a1,x.a2,x.a3,x.a4,x.a5,x.a6);
if(v[x.a1][x.a2][x.a3][x.a4][x.a5][x.a6]==0)
return true;
return false;
}
int bfs(note a)
{
queue< pair<note,int> > q;
q.push(make_pair(a,0));
while(!q.empty())
{
note x=q.front().first;
int ans=q.front().second;
q.pop();
if(x.a1==z.a1&&x.a3==z.a3&&x.a5==z.a5&&x.a2==z.a2&&x.a4==z.a4&&x.a6==z.a6)
return ans;
note y=L(x);
if(judge(y))
{
//printf("888\n");
v[y.a1][y.a2][y.a3][y.a4][y.a5][y.a6]=1;
q.push(make_pair(y,ans+1));
}
y=R(x);
if(judge(y))
{
v[y.a1][y.a2][y.a3][y.a4][y.a5][y.a6]=1;
q.push(make_pair(y,ans+1));
}
y=F(x);
if(judge(y))
{
v[y.a1][y.a2][y.a3][y.a4][y.a5][y.a6]=1;
q.push(make_pair(y,ans+1));
}
y=B(x);
if(judge(y))
{
v[y.a1][y.a2][y.a3][y.a4][y.a5][y.a6]=1;
q.push(make_pair(y,ans+1));
}
}
return -1;
}
int main()
{
note x;
while(~scanf("%d",&x.a1))
{
scanf("%d%d%d%d%d",&x.a2,&x.a3,&x.a4,&x.a5,&x.a6);
scanf("%d%d%d%d%d%d",&z.a1,&z.a2,&z.a3,&z.a4,&z.a5,&z.a6);
memset(v,false,sizeof(v));
printf("%d\n",bfs(x));
}
return 0;
}
相關文章
- 2014北京網路賽1006||hdu5037 思維題
- 2014西安網路賽1009||hdu5015 矩陣矩陣
- 2014西安網路賽1008||hdu5014 二進位制
- 西安網路 繳費地址
- 2014年北京師範大學新生程式設計競賽網路賽程式設計
- 2018 北京賽區網路預選賽 A. Saving Tang Monk II(BFS+優先佇列)佇列
- 西安網際網路知名度如何(CRMEB系統)
- 2014鞍山網路賽 E題||hdu 5001 概率dp
- hdu5489 ||2015合肥網路賽1006 dp+離散化樹狀陣列優化陣列優化
- 2014廣州網路賽1003||hdu 5024 搜尋
- 2014北京網路賽1007||hdu5038 模擬
- “一帶一路”大型網路主題活動在陝西西安啟動
- 2014廣州網路賽1004||hdu5025 分層最短路
- 演算法競賽——BFS廣度優先搜尋演算法
- 八強雲集,決戰西安!“全民全運”王者榮耀“廣電網路秦嶺雲”杯決賽火熱開啟
- 2024年西安交通大學程式設計校賽程式設計
- 西安開票,西安開發票
- 西安開發票,西安開票
- 2014上海網路賽1004||hdu5045 contest【狀態壓縮dp】
- 中國網際網路2014大事記
- 網路安全技能大賽首登網路安全周舞臺
- 新興科技+網際網路創新大賽,科技+社會公益專項賽
- 西安理工大學2024年程式設計校賽程式設計
- 2024中國工業網際網路安全大賽智慧家電行業賽道選拔賽行業
- 江城子•網際網路2014版
- ACM-ICPC 2018 徐州賽區網路預賽ACM
- 一路走來之“網路技術大賽”
- 第八屆“網際網路+”大賽 | 雲原生賽道邀你來挑戰
- 新興科技+網際網路創新大賽,青年創客專項賽介紹
- 2014中國網路效能報告
- HNC 2014華為網路大會
- 2024XJTUPC西安交通大學校賽VP題解
- ACM-ICPC 2018 瀋陽賽區網路預賽ACM
- 第三屆華中地區邀請賽網路賽題解
- 2024春秋杯網路安全聯賽夏季賽-PWN-Writeup
- 2014網際網路公司招聘的奇葩故事
- 新興科技+網際網路創新大賽,科技+文化藝術專項賽介紹
- 2024ccpc網路賽補題