分析:

题意就是,在一个数组里找递增的子序列的最大和,而且子序列元素可以不相邻。
我先上一个错误代码,这是我刚看完题后一分钟就写的,事实上没想象中简单,等会我分析一下错误原因

#include<iostream>
#include<algorithm>
#include<cmath>
using namespace std;
int a[1001];
int m[1001];
int main(){int n,i,j;while(cin>>n){if(n==0) return 0;for(i=1;i<=n;++i){cin>>a[i];  //把数存到数组里}m[1]=a[1];for(i=2;i<=n;++i){m[i]=a[i];//m[i]是以第i个数为结尾的最大和//这里先初始化,因为m[i]最小就是a[i],所以把初始值定为a[i]。for(j=i-1;j>=1;--j){if(a[j]<a[i]&&a[j]>0){//如果i之前,有比a[i]小的数a[j],就把他的m[j]加到m[i]上m[i]+=m[j];break;}}}cout<<*max_element(m+1,m+n+1)<<endl;}}

错误原因:

我以为如果a[i]大于a[i-1],那a[i]+m[i-1]就是m[i]了,事实上,也许i之前有更大的m,他加上a[i]后,会大于a[i]+m[i-1]。那,我现在就需要找出i之前最大的m,让他加上a[i]不就好了

ac答案

短暂的思考了一分钟,我写出了下面的代码,然后就AC了

#include<iostream>
#include<algorithm>
#include<cmath>
using namespace std;
int a[1001];
int m[1000];
int main(){int n,i,j,ma;while(cin>>n){if(n==0) return 0;for(i=1;i<=n;++i){cin>>a[i];  }m[1]=a[1];for(i=2;i<=n;++i){m[i]=a[i];ma=0;//由于a[i]在变,所以每次最大值都不一样,需要重新遍历,先把ma初始化一下for(j=1;j<=i-1;++j){//从1开始,还是从i-1开始,都一样,因为我都需要全部遍历一遍,才能找到最大的m[j],这里我用ma存那个最大值if(a[j]<a[i]){//a[j]比a[i]小,那么m[i]=a[i]+m[j] 用ma存m[j]if(ma<m[j] ) ma=m[j];//循环完之后,ma存的是所有 m[j]中最大的 }}m[i]=a[i]+ma;//加上a[i]就ok了}cout<<*max_element(m+1,m+n+1)<<endl;//找数组m中最大的元素}}

深入剖析:Super Jumping! Jumping! Jumping! (动规)相关推荐

  1. 关于数位动规(入门到进阶,难度中档)

    数位动规,就是对于数位进行动规(日常一句废话···) 刚好今天听数位dp,就总结一下最近写的题吧.郭神说要学懂数位dp,还是要搞懂它内部是怎么工作的.比如一个有大小的数,我们在这里剥夺它作为一个整数的 ...

  2. CF2B The least round way(贪心+动规)

    题目 CF2B The least round way 做法 后面\(0\)的个数,\(2\)和\(5\)是\(10\)分解质因数 则把方格中的每个数分解成\(2\)和\(5\),对\(2\)和\(5 ...

  3. 树形动规_(技能树)

    技能树(SGOI) skill.pas/c/cpp [问题描述] 玩过 Diablo 的人对技能树一定是很熟悉的.一颗技能树的每个结点都是一项技能,要学会这项技能则需 要耗费一定的技能点数.只有在学会 ...

  4. 正则表达式匹配(动规)

    文章目录 题目 思路 转移方程 特征 再探 i 和 j 代码 题目 请实现一个函数用来匹配包含 . 和 * 的正则表达式.模式中的字符 . 表示任意一个字符,而 * 表示它前面的字符可以出现任意次(含 ...

  5. 洛谷 P1073 最优贸易 (分层图状态转移+SPFA,求最长路径;另附某dalao的超短代码:暴力+动规)

    题目链接1 题目链接2 另附某dalao的超短代码:暴力+动规 P1073 最优贸易 题目描述 C国有 n 个大城市和 m 条道路,每条道路连接这 n 个城市中的某两个城市. 任意两个城市之间最多只有 ...

  6. leetcode 121. 买卖股票的最佳时机 (贪心 + 动规 + 双指针

    贪心的思路: 得到最小值,再挨个用数组中的值减去最小值,最终值取一个最大的 class Solution { public:int maxProfit(vector<int>& p ...

  7. 导弹拦截(动规,贪心)

    题目描述 某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统.但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但是以后每一发炮弹都不能高于前一发的高度.某天,雷达捕捉到敌国的导弹 ...

  8. BTTCOJ 问题 G: 逃离地牢 树形动规

    题目描述 小明明又被大威鱼抓住了,大威鱼把小明明关在地牢里,地牢由n * n 个房间组成,小明被困在地牢的最左上角的房间中,出口在最右下角,他想逃出这个诡异的地牢,但是他只能向下或者向右走. 小明每经 ...

  9. bzoj3875 【Ahoi2014】骑士游戏 spfa处理后效性动规

    骑士游戏 [故事背景] 长期的宅男生活中,JYY又挖掘出了一款RPG游戏.在这个游戏中JYY会 扮演一个英勇的骑士,用他手中的长剑去杀死入侵村庄的怪兽. [问题描述] 在这个游戏中,JYY一共有两种攻 ...

  10. bzoj3875: [Ahoi2014Jsoi2014]骑士游戏 spfa处理有后效性动规

    bzoj3875: [Ahoi2014&Jsoi2014]骑士游戏 Description [故事背景] 长期的宅男生活中,JYY又挖掘出了一款RPG游戏.在这个游戏中JYY会 扮演一个英勇的 ...

最新文章

  1. word-ladder总结
  2. java使用getinputstream_java解析数据接口获取json对象
  3. Spring MVC Hello World 例子
  4. Binary Tree Level Order Traversal II 解题思路
  5. 激光振镜误差校正算法C语言,动态聚焦激光振镜扫描系统的误差分析及图形校正算法.pdf...
  6. SqlServer过滤字段中的中文
  7. new+date+xxx+java_SpringMVC+MyBatis - 12 spring mvc4返回的json日期为Long的解决方案
  8. iOS的四种持久化存储
  9. ios sandbox
  10. 企业微信h5开发(即JS-SDK),一不小心,就会掉进坑,进入死胡同
  11. 影视作品(电影,电视剧,PV,MAD,AMV)的制作程序
  12. 质造未来,首届腾讯WeTest技术交流开放日成功举办
  13. 黑马程序员全套Java教程_Java基础入门视频教程零基础自学Java必备教程视频讲义(5)
  14. 一文读懂DEFI借贷以及清算的含义
  15. 普通高中机器人竞赛的现状、问题、对策
  16. 低端电流检测电路实测
  17. Flink开发利器StreamX
  18. AcWing 1129 热浪
  19. 西北农林科技大学计算机考研好考吗,西北农林科技大学考研好考吗?
  20. Veins源码阅读—connectionManager模块

热门文章

  1. QT5主界面“关闭窗口”按钮设置弹出提示询问信息
  2. nifi 实现数据库到数据库之间数据同步
  3. Windows巡检IIS指标脚本(PowerShell实现)
  4. tableau度量值计算_Tableau图表界面组成介绍
  5. c语言简答程序源代码,C语言简答题答案
  6. abap视图字段限制_【第八章】视图
  7. java连接access_关于k8s下使用Ingress保持长连接的异常情况排查
  8. Win11关机后自动开机怎么办 Win11关机后自动开机的解决方法
  9. PP视频如何查看上下集的快捷键
  10. js 把线性的数据结构改成树形结构