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 |
动态规划代码如下,注意用short,否则超内存#include <iostream> using namespace std; #include <string.h> #define N 5001 int n; char s[N]; short f[N][N]; int solv(char s[N],int i,int j) { if(f[i][j]) return f[i][j]; if(i >= j) return f[i][j] = 0; if(s[i] == s[j]) return f[i][j] = solv(s,i+1,j-1); if(solv(s,i,j-1) < solv(s,i+1,j)) return f[i][j] = solv(s,i,j-1) + 1; return f[i][j] = solv(s,i+1,j) + 1; } int main(void) { scanf("%d",&n); scanf("%s",s); memset(f,0,sizeof(f)); printf("%d\n",solv(s,0,strlen(s)-1)); return 0; } Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator