Online JudgeProblem SetAuthorsOnline ContestsUser
Web Board
Home Page
F.A.Qs
Statistical Charts
Problems
Submit Problem
Online Status
Prob.ID:
Register
Update your info
Authors ranklist
Current Contest
Past Contests
Scheduled Contests
Award Contest
User ID:
Password:
  Register

不是说c<=100嘛?我开始就设N=105wa,结果改成500AC...

Posted by 996195670 at 2014-06-12 00:34:29 on Problem 3087
#include<stdio.h>
#include<string.h>
#define N 500
char s1[N],s2[N],x[2*N],z[2*N],y[2*N];
int dfs(char s1[],char s2[],int t,int s);
int main()
{
    int n;
    //freopen("1.txt","r",stdin);
    //freopen("CON","w",stdout);
    while (scanf("%d",&n)!=EOF)
    {
        for (int i=1;i<=n;i++)
        {
            int t,j,flag;
            scanf("%d",&t);
            getchar();
            for (j=0;j<t;j++)
                scanf("%c",&s1[j]);
            s1[t]=0;
            getchar();
            for (j=0;j<t;j++)
                scanf("%c",&s2[j]);
            s2[t]=0;
            getchar();
            scanf("%s",y);
            flag=dfs(s1,s2,t,0);
            printf("%d %d",i,flag);
            printf("\n");
        }
    }
}
int dfs(char s1[],char s2[],int t,int s)
{
    int i;
    for (i=0;i<t;i++)
        x[i*2]=s2[i];
    for (i=0;i<t;i++)
        x[i*2+1]=s1[i];
    s++;
    x[2*t]=0;
    if (s==1)
        memcpy(z,x,2*t*sizeof(int));
    if (!strcmp(x,y))
    {
        return s;
    }
    else
    {
        if (s!=1&&!strcmp(x,z))
            return -1;
        for (i=0;i<t;i++)
            s1[i]=x[i];
        s1[t]=0;
        for (i=t;i<2*t;i++)
            s2[i-t]=x[i];
        s2[t]=0;
        dfs(s1,s2,t,s);
    }
}

Followed by:

Post your reply here:
User ID:
Password:
Title:

Content:

Home Page   Go Back  To top


All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator