Ural 1060. Flip Game
2013-08-07 12:51
204 查看
Ural 1060
状态压缩,然后bfs最短路。
轻松解决
CODE:
状态压缩,然后bfs最短路。
轻松解决
CODE:
#include<cstdio> #include<cstring> #include<algorithm> #include<cmath> #include<vector> #include<set> #include<queue> #include<map> #include<sstream> #include<iostream> using namespace std; #define FOR(i,a,b) for(int (i)=(a);(i)<=(b);(i)++) #define DOR(i,a,b) for(int (i)=(a);(i)>=(b);(i)--) #define bug puts("Fuck"); #define LL long long #define pb push_back #define mp make_pair #define nMax 1<<17 #define eps 1e-8 #define inf 0x7fffffff int dp[nMax],vis[nMax]; char s[5][5]; queue<int> que; int bfs(int n){ while(!que.empty()) que.pop(); dp[0]=dp[n-1]=0; que.push(0),que.push(n-1); vis[0]=vis[n-1]=1; while(!que.empty()){ int cur = que.front();que.pop(); for(int i=0;i<16;i++) { int b=cur^(1<<i); if(i>3) b^=(1<<(i-4)); if(i%4!=0) b^=(1<<(i-1)); if(i%4!=3) b^=(1<<(i+1)); if(i<12) b^=(1<<(i+4)); if(dp[b]==-1 || dp[b]>dp[cur]+1) { dp[b]=dp[cur]+1; if(!vis[b]) { vis[b]=1; que.push(b); } } } } } void init(){ int n=(1<<16); for(int i=0;i<n;i++) dp[i]=-1,vis[i]=0; bfs(n); } int main(){ #ifndef ONLINE_JUDGE // freopen("input.txt","r",stdin); // freopen("output.txt","w",stdout); #endif init(); for(int i=0;i<4;i++) scanf("%s",s[i]); int cur=0; for(int i=0;i<4;i++) for(int j=0;j<4;j++) if(s[i][j]=='w') cur += (1<<(4*i+j)); if(dp[cur]==-1) printf("Impossible\n"); else printf("%d\n",dp[cur]); return 0; }
相关文章推荐
- URAL 1382 Game with Cards 解题报告
- Ural 1180 Stone Game
- URAL 1051 Simple Game on a Grid
- Game with a Strip URAL - 2104(神奇的dfs)
- 【博弈+dfs】Game with a Strip URAL - 2104
- URAL 1180 Stone Game 博弈 找规律 大数取模 除3取模
- URAL 1122 Game
- [构造 找规律 孔明棋] Ural 1051 Simple Game on a Grid
- URAL 1045 Funny Game
- ural 1180. Stone Game (博弈)
- Ural_1060. Flip Game(bfs + 位压缩)
- Ural 1180. Stone Game
- 【博弈 && dfs】URAL 2104 Game with a Strip
- 【DFS】URAL - 2104 - Game with a Strip
- Funny Funny Game(数学题)
- 【BZOJ 2786】 Ural1142 Relation
- LeetCode Algorithms 292. Nim Game 题解
- URAL 1277 Cops and Thieves
- URAL 2001. Mathematicians and Berries
- Game