| ||||||||||
| 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 | |||||||||
我也遇到同样问题,为了避免问题我偷了个懒 直接用g++交 忽略数组越界In Reply To:费了好大劲啊,思想是知道,但是从0循环有太多的问题,不知为什么,不过还是AC了,吼一下 Posted by:yx_th000 at 2009-08-17 17:49:34 我也遇到同样问题,为了避免问题我偷了个懒 直接用g++交的,貌似g可以忽略数组越界,就算f[-1][-1]也可以。。。
#include <stdio.h>
#include <string.h>
int ans,l1,l2,f[500][500];
char s1[500],s2[500];
int same(int a,int b)
{
if (s1[a]==s2[b])
return 1;
else return 0;
}
int max(int a,int b,int c)
{
int maxn;
if(a>b) maxn=a;
else maxn=b;
if (maxn>c) return maxn;
else return c;
}
int main()
{
int i,j;
while (scanf("%s%s", &s1, &s2)!=EOF)
{
memset(f,0,sizeof(f));
l1 = strlen(s1);
l2 = strlen(s2);
f[0][0]=same(0,0);
for (i=0;i<l1;i++)
for (j=0;j<l2;j++)
f[i][j]=max(f[i-1][j-1]+same(i,j),f[i-1][j],f[i][j-1]);
printf("%d\n", f[l1-1][l2-1]);
}
}
Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator