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)
![](https://i.iter01.com/images/4d5d732d13154404ece328db2ccbbc687e4a5d70da9aa5ab2793bf9ce198267e.jpg)
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)
![](https://i.iter01.com/images/4d5d732d13154404ece328db2ccbbc687e4a5d70da9aa5ab2793bf9ce198267e.jpg)
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;
}
相關文章
- 2018 北京賽區網路預選賽 A. Saving Tang Monk II(BFS+優先佇列)佇列
- 2014中國網路效能報告
- 西安網際網路知名度如何(CRMEB系統)
- ZZULIOJ1006
- SFF1006A-ASEMI無人機專用SFF1006A無人機
- “一帶一路”大型網路主題活動在陝西西安啟動
- ACM-ICPC 2018 徐州賽區網路預賽ACM
- 演算法競賽——BFS廣度優先搜尋演算法
- 程式碼部落-2024-1006-J組模擬賽-T1總結
- 八強雲集,決戰西安!“全民全運”王者榮耀“廣電網路秦嶺雲”杯決賽火熱開啟
- 西安新城黨建官網
- 2014省賽---六角填數(填空)(全排列)
- 2020.10.16 【NOIP2014】普及組模擬賽總結
- ACM-ICPC 2018 瀋陽賽區網路預賽ACM
- Mac book pro2014 雷靂有線網路獲取不到地址Mac
- 2024年西安交通大學程式設計校賽程式設計
- 古都傳捷報,2022全民娛樂線上賽西安賽區圓滿落幕
- 2018 徐州網路賽 G 題解
- 2024ccpc網路賽補題
- 【PAT】1006 Sign In and Sign Out
- bfs
- 2024春秋杯網路安全聯賽夏季賽-PWN-Writeup
- 西安易知行諮詢管理官網
- 西安理工大學2024年程式設計校賽程式設計
- 2024XJTUPC西安交通大學校賽VP題解
- 高校網路安全管理運維賽2024運維
- 2018華為網路技術大賽
- PTA-1006—— Sign In and Sign Out
- 【Lintcode】1006. Subdomain Visit CountAI
- 2024中國工業網際網路安全大賽智慧家電行業賽道選拔賽行業
- 新興科技+網際網路創新大賽,科技+社會公益專項賽
- 第八屆“網際網路+”大賽 | 雲原生賽道邀你來挑戰
- BFS(模板)
- 西安開發票,西安開票
- 西安開票,西安開發票
- ACM-ICPC 2018 徐州賽區網路預賽 F. Features TrackACM
- 2021年春秋杯網路安全聯賽秋季賽 勇者山峰部分wp
- 2024高校網路安全管理運維賽 wp運維
- 2024 ICPC 網路預選賽 第 2 場