HDU 4745 Two Rabbits 单环最长回文子序列(2013 ACM/ICPC Asia Regional Hangzhou Online 1008)
彩笔请多指教!
转载请注明出处__谢谢! http://www.cnblogs.com/HaibaraAi/articles/3340098.html by---HaibaraAi 求认识大神(ˇ^ˇ),目前只会水题- -#~~~!
1 #include <cstdio> 2 #include <cstring> 3 #include <algorithm> 4 using namespace std; 5 #define maxn 1001 6 int dp[maxn][maxn]; 7 int a[maxn]; 8 int main(){ 9 int n,ans; 10 while(scanf("%d",&n)&&n){ 11 memset(dp,0,sizeof dp); 12 for(int i=0;i<n;i++){ 13 scanf("%d",&a[i]); 14 dp[i][i]=1; 15 } 16 for(int i=1;i<n;i++) 17 for(int j=0;j+i<n;j++){ 18 dp[j][j+i]=max(dp[j+1][j+i],dp[j][j+i-1]); 19 if(a[j]==a[j+i])dp[j][j+i]=max(dp[j][j+i],dp[j+1][j+i-1]+2); 20 } 21 ans=0; 22 for(int i=0;i<n;i++) 23 ans=max(ans,dp[0][i]+dp[i+1][n-1]); 24 printf("%d\n",ans); 25 } 26 return 0; 27 }
浙公网安备 33010602011771号