HDU 4745 Two Rabbits
来源:互联网 发布:马丽 知乎 编辑:程序博客网 时间:2024/05/16 19:41
区间dp,仔细分析就会发现它让你求长度区间为n的最大回文子序列。
#include<iostream>#include<cstdio>#include<cstring>using namespace std;const int maxn = 2050;int a[maxn];int dp[maxn][maxn];int main(){ int n; while(~scanf("%d",&n) && n){ memset(dp,0,sizeof(dp)); for(int i=0;i<n;i++){ scanf("%d",&a[i]); dp[i][i]=1; } int kk=0; for(int i=n;kk<n;i++){ a[i]=a[kk++]; dp[i][i]=1; } int N=2*n; for(int k=1;k<n;k++){ for(int i=0;;i++){ int j=i+k; if(j>=N) break; int tmp; if(a[i]==a[j]){ tmp=dp[i+1][j-1]+2; } else{ tmp=max(dp[i+1][j],dp[i][j-1]); } dp[i][j]=max(dp[i][j],tmp); } } int Max=-1; for(int i=0;i<n;i++){ int M=max(dp[i][i+n-1],dp[i][i+n-2]+1); Max=max(M,Max); } printf("%d\n",Max); // puts(""); }}
- HDU-4745-Two Rabbits
- hdu 4745 Two Rabbits
- HDU 4745 Two Rabbits
- HDU 4745 Two Rabbits
- hdu 4745 Two Rabbits
- hdu 4745 Two Rabbits
- HDU - 4745 Two Rabbits
- HDU 4745 Two Rabbits
- HDU 4745 Two Rabbits
- hdu 4745 Two Rabbits
- hdu 4745 - Two Rabbits(动规)
- hdu 4745——Two Rabbits
- 区间dp-hdu-4745-Two Rabbits
- HDU 4745 Two Rabbits (最长回文变形)
- HDU 4745 Two Rabbits (区间DP)
- HDU 4745——Two Rabbits
- HDU 4745 Two Rabbits(区间DP)
- HDU 4745 Two Rabbits 区间dp
- qsort函数使用大全
- 题目1016:火星A+B
- 信息系统开发与管理
- VC++动态链接库(DLL)编程深入浅出(zz)
- Linux时间校正
- HDU 4745 Two Rabbits
- 怎样准备软件工程师的面试
- 二维数组的动态分配,可扩充成多维数组
- 题目1509:树中两个结点的最低公共祖先
- 题目1018:统计同成绩学生人数
- 学会16件事情
- 一个整数分解为连续正整数之和
- 树与二叉树
- 题目1022:游船出租