POJ 3087

来源:互联网 发布:手机淘宝如何上架宝贝 编辑:程序博客网 时间:2024/06/08 06:53

这题的界线不是很清楚。到底属于模拟还是搜索呢?

16ms模拟水过23333

#include <cstdio>#include <iostream>#include <map>#include <cstring>using namespace std;const int maxn = 10000;int main(){    int T,n;    scanf("%d",&T);    for(int t=1;t<=T;t++){        char a[maxn],b[maxn],c[maxn*2],sum[maxn*2];        map<string, int> m;        memset(sum, 0, sizeof(sum));        scanf("%d",&n);        scanf("%s %s %s",a,b,c);        m[c]=1;        int count=0;        while(1){            int p=0;            for(int i=0;i<n;i++)            {sum[p++]=b[i];sum[p++]=a[i];}            count++;            if(!strcmp(sum,c)){                printf("%d %d\n",t,count);                break;            }            if(m[sum]){                printf("%d -1\n",t);                break;            }            m[sum]=1;            for(int j=0;j<n;j++)                a[j]=sum[j];            for(int j=0;j<n;j++)                b[j]=sum[j+n];        }    }    return 0;}
0 0
原创粉丝点击