鸣人的查克拉

Time Limit: 1000ms
Memory Limit: 65536KB
64-bit integer IO format:  %lld      Java class name:  Main
Prev  Submit  Status  Statistics  Discuss  Next
Font Size:  +   -
Type:

  • None
  • Graph Theory
  • 2-SAT
  • Articulation/Bridge/Biconnected Component
  • Cycles/Topological Sorting/Strongly Connected Component
  • Shortest Path
  • Bellman Ford
  • Dijkstra/Floyd Warshall
  • Euler Trail/Circuit
  • Heavy-Light Decomposition
  • Minimum Spanning Tree
  • Stable Marriage Problem
  • Trees
  • Directed Minimum Spanning Tree
  • Flow/Matching
  • Graph Matching
  • Bipartite Matching
  • Hopcroft–Karp Bipartite Matching
  • Weighted Bipartite Matching/Hungarian Algorithm
  • Flow
  • Max Flow/Min Cut
  • Min Cost Max Flow
  • DFS-like
  • Backtracking with Pruning/Branch and Bound
  • Basic Recursion
  • IDA* Search
  • Parsing/Grammar
  • Breadth First Search/Depth First Search
  • Advanced Search Techniques
  • Binary Search/Bisection
  • Ternary Search
  • Geometry
  • Basic Geometry
  • Computational Geometry
  • Convex Hull
  • Pick's Theorem
  • Game Theory
  • Green Hackenbush/Colon Principle/Fusion Principle
  • Nim
  • Sprague-Grundy Number
  • Matrix
  • Gaussian Elimination
  • Matrix Exponentiation
  • Data Structures
  • Basic Data Structures
  • Binary Indexed Tree
  • Binary Search Tree
  • Hashing
  • Orthogonal Range Search
  • Range Minimum Query/Lowest Common Ancestor
  • Segment Tree/Interval Tree
  • Trie Tree
  • Sorting
  • Disjoint Set
  • String
  • Aho Corasick
  • Knuth-Morris-Pratt
  • Suffix Array/Suffix Tree
  • Math
  • Basic Math
  • Big Integer Arithmetic
  • Number Theory
  • Chinese Remainder Theorem
  • Extended Euclid
  • Inclusion/Exclusion
  • Modular Arithmetic
  • Combinatorics
  • Group Theory/Burnside's lemma
  • Counting
  • Probability/Expected Value
  • Others
  • Tricky
  • Hardest
  • Unusual
  • Brute Force
  • Implementation
  • Constructive Algorithms
  • Two Pointer
  • Bitmask
  • Beginner
  • Discrete Logarithm/Shank's Baby-step Giant-step Algorithm
  • Greedy
  • Divide and Conquer
  • Dynamic Programming
  • Tag it!

《火影忍者》中,在忍者们使用忍术的时候,需要一定的查克拉(可以看成是一种体力值)。在战斗前,大家都希望提高自己的查克拉。

鸣人发明了一种忍术,可以在短时间内提高查克拉。

在使用忍术前,鸣人需要做一个仪式,这个仪式决定之后每个时刻的一个查克拉值。这些值的使用规则是:如果在某个时刻发动这个忍术,鸣人需要先消耗该时刻的查克拉值;在某个时候结束这个忍术,鸣人能获得该时刻的查克拉值(忍术必须先发动才能结束)。当然,如果某时刻鸣人具有的查克拉值少于该时刻的查克拉值,那么鸣人是不能发动该忍术的。

由于鸣人对这个忍术还不能很好地控制,所以他最多只能发动两次该忍术,并且两次忍术不能同时发动,也就是说必须结束一次忍术才能发动下一次(第一次结束时可以立即发动第二次)。

现在仪式已经做完了,鸣人知道了自己的查克拉的初始值,以及各个时刻的查克拉值,如果他最多可以发动两次该忍术(他也可以选择发动一次或者不发动),那么他最多能达到的查克拉值是多少?

Input

输入数据只有一组,第一行包括两个整数C(0<=C<=100,000)和N(N<=10,000),表示鸣人的初始查克拉值以及仪式决定的时刻的个数。

接下来有N行,第i行包含一个整数Ai (0<=ai<=100,000),表示第i个时刻的查克拉值。

Output

输出一个整数,表示鸣人在使用忍术后能到达的最大的查克拉值。

Sample Input

Sample Input1
10 5
1
2
3
2
5Sample Input2
10 2
11
13

Sample Output

Sample Output1
15Sample Output2
10

Source

做这道题目深感理解力不足啊,读了好多遍还是不明白题目的意思啊,当时是直接模拟过的。其实是dp
动态的维护一个区间的值,还是理解不够啊。。。欢迎同样有疑问的和我讨论。
#include <cstdio>
#include <algorithm>
using namespace std;
int main()
{int c, n;while (scanf("%d %d", &c, &n) != EOF){int low_bound = -100000;int up_bound = 100000;int t = 0,x;int prev = 0;int curr = c;for (int i = 0; i < n; ++i){scanf("%d", &x);t = max(t, low_bound + x);  ///第二次结束最大值if (curr >= x)   ///当前能不能发动、{up_bound = min(up_bound, x);  ///区间最小值low_bound = max(low_bound, prev - x);   ///第二次发动}prev = max(prev, x - up_bound);   ///第一次发动结束得到的最大值curr = prev + c;   /////printf("%d %d %d %d %d\n",t,up_bound,low_bound,prev,curr);}printf("%d\n", t + c);}return 0;
}

bnuoj 29065 鸣人的查克拉相关推荐

  1. BNUOJ29065鸣人的查克拉

    鸣人的查克拉 Time Limit: 1000ms Memory Limit: 65536KB 64-bit integer IO format:  %lld      Java class name ...

  2. ssl1016 OJ8467-数的划分 鸣人的影分身【各种dp之8 7】

    数的划分 Description 将整数n分成k份,且每份不能为空,任意两份不能相同(不考虑顺序). 例如:n=7,k=3 (6<n<=200,2<=k<=6),下面三种分法被 ...

  3. 鸣人的影分身(信息学奥赛一本通-T1303)

    [题目描述] 在火影忍者的世界里,令敌人捉摸不透是非常关键的.我们的主角漩涡鸣人所拥有的一个招数--多重影分身之术--就是一个很好的例子. 影分身是由鸣人身体的查克拉能量制造的,使用的查克拉越多,制造 ...

  4. 1303:鸣人的影分身

    [题目描述] 在火影忍者的世界里,令敌人捉摸不透是非常关键的.我们的主角漩涡鸣人所拥有的一个招数--多重影分身之术--就是一个很好的例子. 影分身是由鸣人身体的查克拉能量制造的,使用的查克拉越多,制造 ...

  5. 鸣人的影分身(动态规划)

    题目描述: 在火影忍者的世界里,令敌人捉摸不透是非常关键的.我们的主角漩涡鸣人所拥有的一个招数--多重影分身之术--就是一个很好的例子. 影分身是由鸣人身体的查克拉能量制造的,使用的查克拉越多,制造出 ...

  6. 003:鸣人的影分身

    003:鸣人的影分身 总时间限制: 1000ms 内存限制: 65536kB 描述 在火影忍者的世界里,令敌人捉摸不透是非常关键的.我们的主角漩涡鸣人所拥有的一个招数--多重影分身之术--就是一个很好 ...

  7. T29389 中忍考试:宁次VS鸣人-白眼!

    题目背景 赛时答疑:https://www.luogu.org/discuss/show/47581 在进入中忍考试的最后阶段,鸣人进行了自己修炼,为的就是迎战"天才忍者"--日向 ...

  8. 机器人鸣人是哪一集_火影里的五个机器人,第一个比鸣人还厉害,机器丁次你都没见过...

    火影虽然是一部讲述众多忍者们的热血故事,但是火影里的时代并不是和古代一样,里面的生活是和现在的我们一样,在动漫里的忍者也是住的高楼,随时打电话,生病了也要去医院,也会肚子饿,也要一天三顿饭.只是火影里 ...

  9. 机器人鸣人是哪一集_火影忍者:四个机器人,机器丁次,机械鸣人,你见过哪个...

    众所周知,火影忍者陪伴了我们15年!15年间,它一直陪伴着我们的青春,陪伴着我们的热血.作为一部讲述忍者的热血动漫,他们在我们的记忆里,可是不可或缺的,优秀的作品自然有优秀的粉丝,身为粉丝,即使火影早 ...

最新文章

  1. 提高C++性能的编程技术笔记:虚函数、返回值优化+测试代码
  2. 14.8类成员的属性
  3. tab in English
  4. kafka集群编程指南
  5. 基本值类型(一):序数类型与运算符
  6. Android 数据库综述(二) 程序计算器与信号量来处理多线程并发问题
  7. 微博2021年营收22.6亿美元同比增34% 日活用户达2.49亿
  8. springboot链接数据库的bug
  9. DIY(也即Build Your Own) vSAN时,选择SSD需要注意的事项
  10. 识别率惊人的 GitHub 口罩检测 | 原力计划
  11. python socket和多线程实现多人对话聊天室
  12. 非常好用的桌面壁纸更换软件
  13. 标准盒子模型与怪异盒子模型
  14. mysql forward_only_mysql参数调优
  15. HTML设置格式化时间
  16. 使用Charles和iPhone进行微信小程序抓包详解
  17. 冷战时期_从冷战到深度学习的机器翻译历史
  18. 物联计算机大赛,江南大学物联网学院在“第三届中国高校计算机大赛-团体程序设计天体赛”喜获佳绩...
  19. unity2018关联不到vs_vs2017里装了一个unity,现在又装了一个unity3d2018,有何区别?...
  20. Vue项目实战之电商后台管理系统(二) 主页模块

热门文章

  1. 用python做一个木马_Python编程简单的木马程序(转载于乌云中)
  2. 2021大厂Android面试经验,经典好文
  3. 微信小程序vue+nodejs+uniapp家装 装修装饰公司管理系统
  4. “欲望像海水,喝得越多,越是口渴。”欲望过多,
  5. java中各种O的含义(PO,DO,VO,TO,QO,BO,DAO,DTO,POJO)
  6. 【LeetCode】每日一题——保持城市天际线
  7. Hydra(九头蛇)弱口令爆破工具详解
  8. 今日头条赚钱是真的吗,今日头条赚钱规则是什么
  9. glTF-Transform处理gltf模型
  10. 电子计算机上gt键的功能,请问计算器里的GT键是做什么用的