[HDU 1087]Super Jumping! Jumping! Jumping!(类LIS DP)
2014-11-06 16:15
176 查看
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1087
题目大意:给你一个序列,要你求这个序列的最大上升子序列的和
思路:类似于LCS的思想,我们可以很快想出此题的DP方程f[i]=max(f[j]+s[i]),s[i]>s[j]
题目大意:给你一个序列,要你求这个序列的最大上升子序列的和
思路:类似于LCS的思想,我们可以很快想出此题的DP方程f[i]=max(f[j]+s[i]),s[i]>s[j]
#include <iostream> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <algorithm> #define MAXN 1010 using namespace std; int s[MAXN]; //输入的序列 int f[MAXN]; int max(int a,int b) { if(a>b) return a; return b; } int main() { int n; while(scanf("%d",&n)!=EOF&&n) { memset(f,0,sizeof(f)); int ans=0; for(int i=1;i<=n;i++) scanf("%d",&s[i]); for(int i=1;i<=n;i++) for(int j=0;j<i;j++) if(s[i]>s[j]) f[i]=max(f[i],f[j]+s[i]); for(int i=1;i<=n;i++) ans=max(ans,f[i]); printf("%d\n",ans); } return 0; }
相关文章推荐
- HDU 1087:Super Jumping! Jumping! Jumping!(DP之LIS)
- HDU:1087 Super Jumping! Jumping! Jumping!(DP,LIS问题)
- HDU 1087 Super Jumping! Jumping! Jumping! (DP+LIS)
- HDU 1087 Super Jumping! Jumping! Jumping! DP 水题, 没能水过
- (step3.2.2)hdu 1087(Super Jumping! Jumping! Jumping!——简单DP)
- HDU - 1087 Super Jumping! Jumping! Jumping! (简单LIS)
- hdu 1087 Super Jumping! Jumping! Jumping!(DP 两个for循环,比较最靠近小于它的的子列最大值)
- hdu 1087 Super Jumping! Jumping! Jumping!(dp+最长递增序列)
- hdu 1087 Super Jumping! Jumping! Jumping! (最大 上升子序列 线性 dp)
- HDU 1087 Super Jumping! Jumping! Jumping! DP
- HDU 1087 Super Jumping! Jumping! Jumping!(DP)
- hdu 1087 Super Jumping! Jumping! Jumping! DP
- hdu 1087 Super Jumping! Jumping! Jumping!(水DP)
- hdu 1087 Super Jumping! Jumping! Jumping! (DP)
- Super Jumping! Jumping! Jumping! -HDU 1087 dp
- HDU 1087 Super Jumping! Jumping! Jumping! DP
- hdu 1087 Super Jumping! Jumping! Jumping! (简单 LIS)
- hdu 1087 Super Jumping! Jumping! Jumping! ----dp
- hdu 1087 Super Jumping! Jumping! Jumping!(dp 最长上升子序列和)
- HDU 1087 Super Jumping! Jumping! Jumping!(dp)