蚂蚁的难题(二)

时间限制:1000 ms  |  内存限制:65535 KB
难度:3
描述

下雨了,下雨了,蚂蚁搬家了。

已知有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相关推荐

  1. 1494: 连续子串和续

    1494: 连续子串和续 http://www.acmore.net/problem.php?id=1494 Time Limit: 10 Sec  Memory Limit: 128 MB Subm ...

  2. 子序列和子串问题算法的全面总结

    1.分清楚什么是子串,什么是子序列 看文章前首先要搞清楚什么是子序列,什么是子串:子序列是指一个字串中非连续的字串,例如:字串A:123456789 它有一个子序列a:13579(非连续) 它有一个子 ...

  3. 【回文串问题】分割回文串

    Leetcode:131. 分割回文串 - 力扣(LeetCode) (leetcode-cn.com) 分为两部分: 1.动态规划确定子串是否是回文串 2.枚举子集 时间复杂度:O(n*2^n) 空 ...

  4. 【动态规划】最长公共子序列与最长公共子串

    1. 问题描述 子串应该比较好理解,至于什么是子序列,这里给出一个例子:有两个母串 cnblogs belong 比如序列bo, bg, lg在母串cnblogs与belong中都出现过并且出现顺序与 ...

  5. 动态规划:求最大公共子串

    1 /// <summary> 2 /// 动态规划:求最大公共子串 3 /// LCS (Longest Common Subsequence) 4 /// </summary&g ...

  6. 算法62---最长回文子序列长度(子串)、回文子序列总共个数(子串)【动态规划】...

    参考链接:https://www.cnblogs.com/AndyJee/p/4465696.html 一.题目:最长回文子序列长度 给定字符串,求它的最长回文子序列长度.回文子序列反转字符顺序后仍然 ...

  7. 【字符串】最长回文子串 ( 动态规划算法 ) ★

    文章目录 一.回文串.子串.子序列 二.最长回文子串 1.动态规划算法 2.动态规划算法代码示例 一.回文串.子串.子序列 " 回文串 ( Palindrome ) " 是 正反都 ...

  8. 动态规划-最长回文子串

    输入: "babad" 输出: "bab" 注意: "aba" 也是一个有效答案. 示例 2:输入: "cbbd" 输出 ...

  9. 动态规划套路在最长公共子串、最长公共子序列和01背包问题中的应用

    2019独角兽企业重金招聘Python工程师标准>>> 适合动态规划(DP,dynamic programming)方法的最优化问题有两个要素:最优子结构和重叠子问题. 最优子结构指 ...

  10. java最长回文子序列_LeetCode[5] - 最长回文子串动态规划

    题目 给定一个字符串 s,找到 s 中最长的回文子串.你可以假设 s 的最大长度为1000. 示例 1: 输入: "babad" 输出: "bab" 注意: & ...

最新文章

  1. ajax返回一段html代码,【提问】ajax请求返回整个html页面
  2. 【React Native】iOS原生导航跳转RN页面
  3. [crypto]-50-base64_encode和base64_decode的C语言实现
  4. Selenium - 简介
  5. C++初学者必看的50个建议 绝对经典
  6. 对话OTTVerse创始人Krishna Rao Vijayanagar:创业之初,挑战与机遇并存
  7. CCF 201412-2 Z字形扫描
  8. Android系统--输入系统(八)Reader线程_使用EventHub读取事件
  9. python之路-02 Python基础
  10. SCP使用技巧-递归排除文件
  11. Python学习笔记(正则表达式)
  12. 疫情下的创业品牌如何逆风翻盘?
  13. 学生选课系统项目分析-1,架构
  14. 基于团队的持续优化之道
  15. html显示网上图片不显示不出来,网页图片显示不出来,教您网页不显示图片怎么办...
  16. Windows一键清空回收站
  17. BigDecimal运算和比较大小
  18. 【已解决】surface 电池不好充电显示“未连接”,将充电的接口换个方向就解决了
  19. python编程求导数_SciPy函数求导数
  20. Openzeppelin库 09.Crowdsale

热门文章

  1. CKeditor与CKfinder的简单配置
  2. 【CSON原创】CSS的障眼法:利用border实现图片的翻转
  3. UBNT Bullet M2说明书
  4. SQL Server 2005两种快照隔离机制的比较
  5. python dash html.table_阅读 Python dash 代码的时候有个问题, 那个包的调用有问题?
  6. 如何在线向虚拟机中安装redis单机版的详细步骤
  7. ue4缓存位置怎么改_[UE4]动态液体材质浅谈
  8. php空格占几个字符,一个空格几个字符?
  9. php基于浏览器的linux终端模拟器,shellinabox基于web浏览器的终端模拟器
  10. 调用import win32com.client出错的解决办法