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

Re:为什么错了?请给个数据,谢谢!

Posted by bule at 2008-04-11 20:17:20 on Problem 1226
In Reply To:为什么错了?请给个数据,谢谢! Posted by:demo at 2008-04-11 19:05:47
> #include<stdio.h>
> #include<string.h>
> typedef struct
> {
>     char a[110];
>     int l;
> }ad;
> int zm(char s1[],char s2[],int i,int j)//顺序匹配
> {
>     int cd=0,l1=strlen(s1),l2=strlen(s2);
>     if(s2[j]!=s1)
>         return 0;
>     while(j<l2&&i<l1)
>     {
>         if(s2[j]==s1)
>         {
>             i++;
>             j++;
>             cd++;
>         }
>         else break;
>     }
>     return cd;
> }
> int nm(char s1[],char s2[],int i,int j)//逆序匹配
> {
>     int cd=0,l1=strlen(s1),l2=strlen(s2);
>         if(s2[j]!=s1)
>           return 0;
>     while(j>=0&&i<l1)
>     {
>       if(s2[j]==s1)
>       {
>           j--;
>           i++;
>           cd++;
>       }
>       else break;
>     }
>     return cd;
> }
> int main()
> {
>     int t,i,j,k,n,ml,id,s,c[110],ma,m,q,d[110];
>     ad b[110];
>     scanf("%d",&t);
>     while(t--)
>     {
>         scanf("%d",&n);
>         getchar();
>         ml=110;s=0;/*找最小长度的字符串
>         for(i=0;i<n;i++)
>         {
>             gets(b.a);
>             b.l=strlen(b.a);
>             if(b.l<ml)
>             {
>                 ml=b.l;
>                 id=i;
>             }
>         }*/
>         for(j=0;j<b[id].l;j++)//取要匹配的字符串的第一个字符
>         {
>             c[j]=200;
>             for(k=0;k<n;k++)
>             {
>                 d[k]=180;q=0;
>                 if(k!=id)
>                 {/*取顺序,逆序匹配的最大长度
>                         for(m=0;m<b[k].l;m++)
>                         if(zm(b[id].a,b[k].a,j,m)>q)
>                             q=zm(b[id].a,b[k].a,j,m);
>                     for(m=b[k].l-1;m>=0;m--)
>                         if(nm(b[id].a,b[k].a,j,m)>q)
>                             q=nm(b[id].a,b[k].a,j,m);
>                         d[k]=q;
>                 }*/
>                 else d[k]=150;
>                 if(d[k]<c[j]) c[j]=d[k];
>             }
>         }
>         ma=0;
>         for(j=0;j<b[id].l;j++)
>         {
>             if(c[j]>ma)
>                 ma=c[j];
>         }
>         printf("%d\n",ma);
>     }
>     return 0;
> }

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