#include<cstdio>
#include<stdlib.h>
#include<string.h>
using namespace std;
const int maxn=1000;
char a[maxn],b[maxn],c[maxn];
char x[maxn],y[maxn],z[maxn];
int kase;
int step;
int main()
{
int n,m;
scanf("%d",&n);
kase=1;
while(n--)
{
step=0;
scanf("%d",&m);
getchar();
gets(a);
gets(b);
gets(c);
strcpy(x,a);
strcpy(y,b);
while(strcmp(c,z)!=0)
{
int j=0;
for(int i=0;i<m;)
{
z[j++]=y[i];
z[j++]=x[i++];
}
z[j]='\0';
step++;
int k;
for(k=0;k<m;k++)
{
x[k]=z[k];
}
x[k]='\0';
int p=k;
int q=0;
for(;p<strlen(z);p++,q++)
{
y[q]=z[p];
}
y[q]='\0';
if(strcmp(a,x)==0&&strcmp(b,y)==0)
{
break;
}
}
if(strcmp(c,z)==0)
printf("%d %d\n",kase,step);
else
printf("%d -1\n",kase);
kase++;
}
return 0;
}
感觉这个题目只是很简单的模拟题啊,也没有用到什么复杂的方法,仅仅是字符串的处理而已。但也是又一次AC ,值得纪念,我的做法也许还是十分的粗浅的,还要去网上向其他大神学习啊。
POJ 3087
最新推荐文章于 2018-07-30 16:01:10 发布