动态规划之子串和(续。升级版)nyoj745
蚂蚁的难题(二)
- 描述
-
下雨了,下雨了,蚂蚁搬家了。
已知有n种食材需要搬走,这些食材从1到n依次排成了一个圈。小蚂蚁对每种食材都有一个喜爱程度值Vi,当然,如果Vi小于0的时候,表示蚂蚁讨厌这种食材。因为马上就要下雨了,所以蚂蚁只能搬一次,但是能够搬走连续一段的食材。时间紧急,你快帮帮小蚂蚁吧,让它搬走的食材喜爱值和最大。
- 输入
-
有多组测试数据(以EOF结尾)。
每组数据有两行,第一行有一个n,表示有n种食材排成了一个圈。(1 <= n<= 50000)
第二行分别有n个数,代表蚂蚁对第n种食材的喜爱值Vi。(-10^9 <= Vi <= 10^9) - 输出
- 输出小蚂蚁能够搬走的食材的喜爱值总和的最大。
- 样例输入
-
3 3 -1 2 5 -8 5 -1 3 -9
- 样例输出
-
5 7
- 来源
- 蚂蚁系列
-
上传者
ACM_李如兵 -
/*其实它只是在原来的情况上多加了一种首位相接情况, 所以只需不管首位想接先求出最大和ans,然后求出首位想接情况的最大和ans1 ,取两者的最大值即可。ans1的求法其实和ans的求法差不多, 试想一下一个环,你要是求得了 不首尾相接的最小和 , 那么剩下的数就是首尾相接的最大和!!! 所以ans1=所有元素的和-不首尾相接的最小和。*/#include<iostream> #include<string.h> #include<algorithm> #include<stdio.h> #include<stdlib.h> using namespace std;long long a[55000];int main() {int n;while(cin>>n){long long sum=0;for(int i=0; i<n; i++){cin>>a[i];sum+=a[i];}long long need =0;long long maxsum=0;for(int i=0; i<n; i++){need+=a[i];if(need>maxsum) maxsum=need;if(need<0)need=0;} // cout<<"**"<<maxsum<<endl;long long nned = 0;long long minsum=0;for(int i=0; i<n; i++){nned+=a[i];if(nned<minsum) minsum=nned;if(nned>0)nned = 0;} // cout<<minsum<<"*-*"<<endl;if(maxsum>sum-minsum)cout<<maxsum<<endl;elsecout<<(sum-minsum)<<endl;} }
动态规划之子串和(续。升级版)nyoj745相关推荐
- 1494: 连续子串和续
1494: 连续子串和续 http://www.acmore.net/problem.php?id=1494 Time Limit: 10 Sec Memory Limit: 128 MB Subm ...
- 子序列和子串问题算法的全面总结
1.分清楚什么是子串,什么是子序列 看文章前首先要搞清楚什么是子序列,什么是子串:子序列是指一个字串中非连续的字串,例如:字串A:123456789 它有一个子序列a:13579(非连续) 它有一个子 ...
- 【回文串问题】分割回文串
Leetcode:131. 分割回文串 - 力扣(LeetCode) (leetcode-cn.com) 分为两部分: 1.动态规划确定子串是否是回文串 2.枚举子集 时间复杂度:O(n*2^n) 空 ...
- 【动态规划】最长公共子序列与最长公共子串
1. 问题描述 子串应该比较好理解,至于什么是子序列,这里给出一个例子:有两个母串 cnblogs belong 比如序列bo, bg, lg在母串cnblogs与belong中都出现过并且出现顺序与 ...
- 动态规划:求最大公共子串
1 /// <summary> 2 /// 动态规划:求最大公共子串 3 /// LCS (Longest Common Subsequence) 4 /// </summary&g ...
- 算法62---最长回文子序列长度(子串)、回文子序列总共个数(子串)【动态规划】...
参考链接:https://www.cnblogs.com/AndyJee/p/4465696.html 一.题目:最长回文子序列长度 给定字符串,求它的最长回文子序列长度.回文子序列反转字符顺序后仍然 ...
- 【字符串】最长回文子串 ( 动态规划算法 ) ★
文章目录 一.回文串.子串.子序列 二.最长回文子串 1.动态规划算法 2.动态规划算法代码示例 一.回文串.子串.子序列 " 回文串 ( Palindrome ) " 是 正反都 ...
- 动态规划-最长回文子串
输入: "babad" 输出: "bab" 注意: "aba" 也是一个有效答案. 示例 2:输入: "cbbd" 输出 ...
- 动态规划套路在最长公共子串、最长公共子序列和01背包问题中的应用
2019独角兽企业重金招聘Python工程师标准>>> 适合动态规划(DP,dynamic programming)方法的最优化问题有两个要素:最优子结构和重叠子问题. 最优子结构指 ...
- java最长回文子序列_LeetCode[5] - 最长回文子串动态规划
题目 给定一个字符串 s,找到 s 中最长的回文子串.你可以假设 s 的最大长度为1000. 示例 1: 输入: "babad" 输出: "bab" 注意: & ...
最新文章
- ajax返回一段html代码,【提问】ajax请求返回整个html页面
- 【React Native】iOS原生导航跳转RN页面
- [crypto]-50-base64_encode和base64_decode的C语言实现
- Selenium - 简介
- C++初学者必看的50个建议 绝对经典
- 对话OTTVerse创始人Krishna Rao Vijayanagar:创业之初,挑战与机遇并存
- CCF 201412-2 Z字形扫描
- Android系统--输入系统(八)Reader线程_使用EventHub读取事件
- python之路-02 Python基础
- SCP使用技巧-递归排除文件
- Python学习笔记(正则表达式)
- 疫情下的创业品牌如何逆风翻盘?
- 学生选课系统项目分析-1,架构
- 基于团队的持续优化之道
- html显示网上图片不显示不出来,网页图片显示不出来,教您网页不显示图片怎么办...
- Windows一键清空回收站
- BigDecimal运算和比较大小
- 【已解决】surface 电池不好充电显示“未连接”,将充电的接口换个方向就解决了
- python编程求导数_SciPy函数求导数
- Openzeppelin库 09.Crowdsale
热门文章
- CKeditor与CKfinder的简单配置
- 【CSON原创】CSS的障眼法:利用border实现图片的翻转
- UBNT Bullet M2说明书
- SQL Server 2005两种快照隔离机制的比较
- python dash html.table_阅读 Python dash 代码的时候有个问题, 那个包的调用有问题?
- 如何在线向虚拟机中安装redis单机版的详细步骤
- ue4缓存位置怎么改_[UE4]动态液体材质浅谈
- php空格占几个字符,一个空格几个字符?
- php基于浏览器的linux终端模拟器,shellinabox基于web浏览器的终端模拟器
- 调用import win32com.client出错的解决办法