hdoj1087 Super Jumping! Jumping! Jumping! ( dp )
2013-12-06 17:39
302 查看
题目:http://acm.hdu.edu.cn/showproblem.php?pid=1087
题意;
![](http://acm.hdu.edu.cn/data/images/1087-1.jpg)
从start点到end点,中间有很多个得分点,要求找一个绝对的升序数列,使其总和最大。输出最大总和。
思路:
a[i]存各点的值,b[i]存到达i点时可得到的最大和。
当求i点可得的最大和时,使j遍历0<=j<i找出最大的b[j]且a[j]<a[i];则此时b[i]=max(b[j])+a[i];
题意;
![](http://acm.hdu.edu.cn/data/images/1087-1.jpg)
从start点到end点,中间有很多个得分点,要求找一个绝对的升序数列,使其总和最大。输出最大总和。
思路:
a[i]存各点的值,b[i]存到达i点时可得到的最大和。
当求i点可得的最大和时,使j遍历0<=j<i找出最大的b[j]且a[j]<a[i];则此时b[i]=max(b[j])+a[i];
#include<stdio.h> #include<algorithm> #include<iostream> using namespace std; int a[1001]; int main() { int n,i,j,s,m; int b[1001]={0}; while(scanf("%d",&n)&&n!=0) { s=0; for(i=0;i<n;i++) { m=0; scanf("%d",&a[i]); for(j=i-1;j>=0;j--) if(a[i]>a[j]&&b[j]>m)m=b[j]; b[i]=m+a[i]; if(b[i]>s)s=b[i]; } printf("%d\n",s); } return 0; }
相关文章推荐
- java基础知识4-变量比较,类型转换
- WPF异步方法练习
- Modernizr使用
- 使用异步 I/O 大大提高应用程序的性能
- 函数的巩固
- 安装libpcap
- 用socketpair()进行进程间的全双工通讯
- ibatis 一对一,一对多
- 今天看到一份资料上有讲到Oracle分页优化
- Windows SharePoint Services 默认母版页
- Windows SharePoint Services 默认母版页
- HDU 1242 广搜模板
- Orge 安装
- 【Linux】Linux平台Cpu使用率的计算
- 数据库锁表
- 扫雷小游戏
- 从事企业级的项目开发
- 加载listview配合适配器的使用
- Highcharts + jQuery + Servlet 实现从后台获取JSON实时刷新图表
- android 自定义控件库(jar)时属性不能识别的来看吧