hdu 1087题解
来源:互联网 发布:vx是社交软件吗? 编辑:程序博客网 时间:2024/04/29 12:27
hdu 1087 题解
题目概要:一串串连续的递增数列中,求最大的数列之和
分析:首先感觉和求最长递增子序列的经典题型相似,所以就考虑用动态规划来解此题。
程序说明:首先将数存在数组v[]中,dp[i]表示的是以第i个数为结尾的数列的最大和。状态转移方程是:dp[i] = max(dp[i], dp[j]+v[i]);其中dp[j]+v[i]表示的是当v[j]<v[i]时的情况。
时间复杂度是O(n2)
代码:
#include<iostream>
#include<string>
#include<vector>
#include<algorithm>
#include<stdio.h>
#include<stdlib.h>
using namespace std;
int v[1500];
int dp[1500];
int main()
{
inta, n;
while(cin >> n )
{
if( n == 0 ) break;
for( int i = 0; i < n; i ++ )
{
cin>> v[i];
}
for( int i = 0; i < n; i ++ )
{
dp[i]= v[i];
for(int j = 0; j < i; j ++ )
{
if(v[j] < v[i] )
{
dp[i]= max(dp[i], dp[j]+v[i]);
}
}
}
int max = dp[0];
for( int i = 1; i < n; i ++ )
if(max < dp[i] ) max = dp[i];
cout<<max<<endl;
}
return0;
}
- hdu 1087题解
- hdu 4602题解
- hdu 1789题解
- HDU 4665 题解
- HDU 4710题解
- HDU 4715题解
- hdu 2844题解
- hdu 2845 题解
- hdu 4007题解
- hdu 4004题解
- hdu 1879题解报告
- HDU 2180 时钟 题解
- HDU 1425 sort 题解
- HDU 1015 Safecracker 题解
- HDU Computer Transformation1041 题解
- HDU 题解 1024
- hdu 4451Dressing题解
- hdu 5120 题解 Intersection
- 在Excel中使用SQL语句实现精确查询
- pxa920 88pm860x充电
- Linux common commands
- 月份
- Leetcode: Distinct Subsequences
- hdu 1087题解
- 方法的重载、隐藏与重写辨析
- iOS - 单例传值 /使用使用SharedApplication.进行传值(二)
- ACM必学]文件输入输出技巧:freopen这样用也行
- 把JVM移植到ARM环境中
- PHP安全过滤
- Visual studio 2010 CTP并行编程: 分形绘图例子
- IOS AppDelegate.m 详解
- unity 之 安装目录下的文件及文件夹分析