博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
HDU 1087 Super Jumping! Jumping! Jumping!
阅读量:4313 次
发布时间:2019-06-06

本文共 1073 字,大约阅读时间需要 3 分钟。

这一题是比较简单的动态规划,状态f[i]表示走前i个棋子时的最高分数,状态转移方程为f[i] = {max(f[j]), i > j && step[i] > step[j] + step[i]}.

AC code:

1 ude 
2 #define MAX 1000 3 using namespace std; 4 5 int step[MAX]; 6 int f[MAX]; 7 int n; 8 int max_sum(int i) 9 {
10 int max = 0; 11 int j; 12 for(j = 0; j < i; j++) 13 {
14 if(f[j] > max && step[j] < step[i]) 15 {
16 max = f[j]; 17 } 18 } 19 return max; 20 } 21 22 int main() 23 {
24 int max; 25 while(scanf("%d", &n)!=EOF && n) 26 {
27 memset(step, 0, sizeof(step)); 28 memset(f, 0, sizeof(f)); 29 for(int i = 0; i < n; i++) 30 scanf("%d", &step[i]); 31 f[0] = step[0]; 32 max = 0; 33 for(int i = 1; i < n; i++) 34 f[i] = max_sum(i) + step[i]; 35 for(int i = 0; i < n; i++) 36 if(f[i] > max) 37 max = f[i]; 38 printf("%d\n", max); 39 } 40 return 0; 41 }

转载于:https://www.cnblogs.com/gaigai/archive/2012/03/01/2376280.html

你可能感兴趣的文章
os模块
查看>>
LINQ to SQL vs. NHibernate
查看>>
基于Angular5和WebAPI的增删改查(一)
查看>>
windows 10 & Office 2016 安装
查看>>
最短路径(SP)问题相关算法与模板
查看>>
js算法之最常用的排序
查看>>
Python——交互式图形编程
查看>>
经典排序——希尔排序
查看>>
团队编程项目作业2-团队编程项目代码设计规范
查看>>
英特尔公司将停止910GL、915GL和915PL芯片组的生产
查看>>
团队编程项目作业2-团队编程项目开发环境搭建过程
查看>>
Stax解析XML示例代码
查看>>
cookie
查看>>
二级图片导航菜单
查看>>
<Using parquet with impala>
查看>>
OpenGL渲染流程
查看>>
委托异步回调
查看>>
扩展欧几里得算法
查看>>
いつでもどこでも本格的に麻雀&チュートリアルが充実!iPhone/iPod touch/iPad向け「雀龍門Mobile」をiPadで遊んでみました...
查看>>
如何重置mysql中的root密码
查看>>