| ||||||||||
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 |
看 F.A.QsIn Reply To:c提交超时的试试用GCC,蔽人就这样过了,疑惑中... Posted by:insky at 2006-08-20 13:56:15 > #include <stdio.h> > short int l[5001][5001]; > char s[5001]; > int love(int i, int j)//自上而下的动态规划(备忘录法) > { > if(l[i][j]!=5555) > return l[i][j]; > if(j<=i) > { > l[i][j]=0; > return 0; > } > if(s[i]==s[j]) > { > l[i][j]=love(i+1,j-1); > return l[i][j]; > } > else > { > l[i][j]=love(i+1,j); > if(love(i,j-1)<l[i][j]) > l[i][j]=l[i][j-1]; > l[i][j]++; > return l[i][j]; > } > } > int main() > { > int n,i,j; > scanf("%d%s",&n,s); > for(i=0;i<n;i++) > for(j=0;j<n;j++) > l[i][j]=5555; > printf("%d",love(0,n-1)); > } > /*刻画最优子结构的解为:设l[i,j]为s[i..j]之间最少需插入的字符个数。 > { > 0 i=j; > l[i,j]= l[i+1,j-1] s[i]=s[j]&&j>=i; > min(s[i+1,j],s[i,j-1])+1 s[i]!=s[j]&&j>=i; > }*/ Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator