POJ 3087 Shuffle'm Up
2016-08-25 16:58
281 查看
模拟。
就把洗牌的过程模拟一下,开一个$map$记录一下某状态是否出现过,如果之前出现过,就意味着无解。
就把洗牌的过程模拟一下,开一个$map$记录一下某状态是否出现过,如果之前出现过,就意味着无解。
#pragma comment(linker, "/STACK:1024000000,1024000000") #include<cstdio> #include<cstring> #include<cmath> #include<algorithm> #include<vector> #include<map> #include<set> #include<queue> #include<stack> #include<iostream> using namespace std; typedef long long LL; const double pi=acos(-1.0),eps=1e-8; void File() { freopen("D:\\in.txt","r",stdin); freopen("D:\\out.txt","w",stdout); } int T,n; char s1[400],s2[400],t[400],s[400]; int main() { scanf("%d",&T); int cas=1; while(T--) { scanf("%d",&n); map<string,bool>f; memset(s,0,sizeof s); memset(t,0,sizeof t); scanf("%s%s",s1,s2); scanf("%s",s); int ans=0; while(1) { for(int i=0;i<n;i++) t[2*i]=s2[i], t[2*i+1]=s1[i]; ans++; if(strcmp(s,t)==0) break; if(f[t]==0) { f[t]=1; for(int i=0;i<n;i++) s1[i]=t[i]; for(int i=n;i<2*n;i++) s2[i-n]=t[i]; } else {ans=-1; break;} } printf("%d %d\n",cas++,ans); } return 0; }
相关文章推荐
- POJ 3087 Shuffle'm Up
- POJ-3087-Shuffle'm Up
- POJ 3087 Shuffle'm Up(水题)
- POJ 3087:Shuffle'm Up
- Poj 3087 Shuffle'm Up
- POJ 3087 Shuffle'm Up
- poj 3087 Shuffle'm Up(bfs)
- poj 3087 Shuffle'm Up ( map 模拟 )
- POJ 3087 Shuffle'm Up bfs
- POJ 3087 Shuffle'm Up
- Shuffle'm Up (poj 3087 模拟)
- POJ-3087 Shuffle'm Up (模拟)
- poj 3087 Shuffle'm Up (bfs)
- POJ 3087 Shuffle'm Up
- DFS POJ 3087 Shuffle'm Up
- POJ-3087-Shuffle'm Up
- POJ 3087 Shuffle'm Up
- poj 3087 Shuffle'm Up 模拟
- POJ-3087- Shuffle'm Up(字符串模拟)
- POJ ~ 3087 ~ Shuffle'm Up(set+模拟)