POJ 3087.Shuffle'm Up

来源:互联网 发布:centos搜狗输入法安装 编辑:程序博客网 时间:2024/06/16 23:37

题目:http://poj.org/problem?id=3087

AC代码(C++):

#include <iostream>#include <algorithm>#include <stdio.h>#include <vector>#include <queue>#include <map>#include <math.h>#include <string>#include <string.h>#include <bitset>#define INF 0xfffffff#define MAXN 100005using namespace std;int c;map<string,bool> vis;int main(){int t;cin>>t;string s1,s2,s12,se;int ans;    for(int tt = 0; tt < t; tt++){    cin>>c>>s1>>s2>>se;    vis.clear();    ans = 0;    while(1){    s12.clear();    for(int i = 0; i < c; i++){    s12 += s2[i];    s12 += s1[i];}ans++;if(!vis[s12]){if(s12 == se){cout<<tt+1<<' '<<ans<<endl;break;}vis[s12] = true;s1 = s12.substr(0,c);s2 = s12.substr(c,2*c);}else{cout<<tt+1<<' '<<-1<<endl;break;}}}}
总结: 模拟题, 用map查字符串.