| ||||||||||
| Online Judge | Problem Set | Authors | Online Contests | User | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest | |||||||||
Re:为什么总是RE?高手帮我看一下In Reply To:为什么总是RE?高手帮我看一下 Posted by:RiverM at 2007-11-16 11:09:13 Your program is to read from standard input. The first line contains one integer: the length of the input string N, 3 <= N <= 5000.
> #include<stdio.h>
> #define M 101 // 这个有问题吧
> #define N 101 // 这个有问题吧
> int cmp(char ch1[],char ch2[])
> {
> int len1=0,len2=0,temp=0,min=0;
> int a[M][N],i=0,j=0;
> while(ch1[len1]!='\0')
> len1++;
> while(ch2[len2]!='\0')
> len2++;
> for(i=0;i<=len1;i++)a[i][0]=i;
> for(j=0;j<=len2;j++)a[0][j]=j;
> for(i=1;i<=len1;i++)
> for(j=1;j<=len2;j++)
> {
> min=32767;
> temp=ch1[i-1]==ch2[j-1] ? 0:2;
> if(min>a[i-1][j]+1)
> min=a[i-1][j]+1;
> if(min>a[i][j-1]+1)
> min=a[i][j-1]+1;
> if(min>a[i-1][j-1]+temp)
> min=a[i-1][j-1]+temp;
> a[i][j]=min;
> }
> return a[len1][len2];
> }
> int depart(char ch[],int len)
> {
> int i=0,j=0,k=0,min=32767,rem1=0,rem2=0,temp=0;
> char ch1[M],ch2[N];
> min=len;
> for(i=0;i<len;i++)
> {
> for(j=0;j<M;j++) ch1[j]='\0';
> for(j=0;j<N;j++) ch2[j]='\0';
> for(j=0;j<i;j++)
> {
> ch1[j]=ch[j];
> }
> ch1[j+1]='\0';
> temp=len-j-1;
> ch2[temp+1]='\0';
> for(j,k=len-j-1;j<len;j++,k--)
> {
> ch2[k]=ch[j];
> }
>
> rem1=cmp(ch1,ch2);
> ch2[temp]='\0';
> rem2=cmp(ch1,ch2);
> if(min>rem1)
> min=rem1;
> if(min>rem2)
> min=rem2;
> }
> return min;
> }
> int main()
> {
> int len;
> scanf("%d",&len);
> char ch[N];
>
> scanf("%s",ch);
>
> printf("%d",depart(ch,len));
> return 0;
> }
Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator