题目描述

在蒜厂年会上有一个抽奖,在一个环形的桌子上,有 n 个纸团,每个纸团上写一个数字,表示你可以获得多少蒜币。但是这个游戏比较坑,里面竟然有负数,表示你要支付多少蒜币。因为这些数字都是可见的,所以大家都是不会出现的赔的情况。
游戏规则:每人只能抓一次,只能抓取一段连续的纸团,所有纸团上的数字和就是你可以获得的蒜币。
蒜头君作为蒜厂的一员在想,我怎么可以获得最多的蒜币呢?最多能获取多少蒜币呢?
因为年会是发奖,那么一定有大于 0 的纸团。

输入格式

第一行输入一个整数 n,表示有 n 个纸团。
第二行输入输入 n 个整数 ai​,表示每个纸团上面写的数字(这些纸团的输入顺序就是环形桌上纸团的摆放顺序)。

输出格式

输出一个整数,表示蒜头君最多能获取多少蒜币。

数据范围

1≤n≤10^ 5,−10^ 9≤ai≤10^9

样例输入

3
1 -2 1

样例输出

2

题解:比较容易想到的,将环队列变成链式队列,再统计长度最大为n的区间中的和最大,我就不多说了,这里我们来介绍另一种方法:
分别求出最大连续子序列和maxsum和最小连续子序列和minsum,maxsum表示的是链式的连续序列最大值,minsum表示的是链式的连续序列最小值,sum-minsum就表示的是环状的连续序列的最大值,然后输出maxsum和sum-minsum中最大值即可,

#include<bits/stdc++.h>
#include<cmath>
#define maxn 100000
using namespace std;
typedef long long ll;
ll a[maxn+5];
int main()
{ll sum=0;int n;scanf("%d",&n);for(int i=0;i<n;i++){scanf("%lld",&a[i]);sum+=a[i];}ll Minsum=a[0],Maxsum=a[0];ll Min=0,Max=0;for(int i=0;i<n;i++){Min+=a[i];Max+=a[i];Minsum=min(Minsum,Min);Maxsum=max(Maxsum,Max);if(Min>0)Min=0;if(Max<0)Max=0;}printf("%lld",max(Maxsum,sum-Minsum));return 0;
}

2019 蓝桥杯省赛 B 组模拟赛(一) J. 程序设计:蒜厂年会 环形连续子序列求和问题相关推荐

  1. 2019 蓝桥杯省赛 B 组模拟赛(一)蒜厂年会

    2019 蓝桥杯省赛 B 组模拟赛(一)蒜厂年会 这题有两种情况 1.最大的和是在0~n-1 2.最大的和越过了首尾 这时候只要用n个数的和 - 0~n-1 的连续的最小和 这是求连续子集最大.最小 ...

  2. 2019 蓝桥杯省赛 B 组模拟赛(一)——计蒜客(未完待续)

    比赛链接: 2019 蓝桥杯省赛 B 组模拟赛(一) 友情提示: 蓝桥杯的头文件,如果不是都记得,可以直接万能头文件 #include <bits/stdc++.h>, 不过有的时候,这样 ...

  3. 2018 蓝桥杯省赛 B 组模拟赛(一)--封印之门

    题目链接:https://nanti.jisuanke.com/t/A1594 蒜头君被暗黑军团包围在一座岛上,所有通往近卫军团的路都有暗黑军团把手.幸运的是,小岛上有一扇上古之神打造的封印之门,可以 ...

  4. 52-2018 蓝桥杯省赛 B 组模拟赛(一)java

    最近蒜头君喜欢上了U型数字,所谓U型数字,就是这个数字的每一位先严格单调递减,后严格单调递增.比如 212212 就是一个U型数字,但是 333333, 9898, 567567, 313133131 ...

  5. 2020年 第11届 蓝桥杯 C/C++ B组 省赛真题详解及小结【第1场省赛2020.7.5】【Java版】

    蓝桥杯 Java B组 省赛真题详解及小结汇总[2013年(第4届)~2020年(第11届)] 注意:部分代码及程序 源自 蓝桥杯 官网视频(历年真题解析) 郑未老师. 2013年 第04届 蓝桥杯 ...

  6. 第一届『Citric杯』NOIP提高组模拟赛 题解

    [官方题解]第一届『Citric杯』NOIP提高组模拟赛 题解 第一题 柠檬超市 这题是本次模拟赛的送分题.做法显然. 但是注意此题有一个陷阱: 注意W和C的规模都是10^9,所以如果直接用doubl ...

  7. python解答蓝桥杯真题3 省模拟赛 计算机存储中有多少字节

    python解答蓝桥杯真题3 省模拟赛 计算机存储中有多少字节 题目 问题描述 在计算机存储中,12.5MB是多少字节? 答案提交 这是一道结果填空的题,你只需要算出结果后提交即可.本题的结果为一个整 ...

  8. 2015年第六届蓝桥杯C/C++B组省赛题目解析

    1.奖券数目 有些人很迷信数字,比如带"4"的数字,认为和"死"谐音,就觉得不吉利. 虽然这些说法纯属无稽之谈,但有时还要迎合大众的需求.某抽奖活动的奖券号码是 ...

  9. 计蒜客2019蓝桥杯省赛B组模拟赛(一)题目及解析

    蓝桥杯历年真题题目及题解目录汇总   A. 结果填空:钟表 题库链接 分值: 5 一天蒜头君 22:28:45 开始睡觉,06:24:26 醒来之后,蒜头君在想,今天我睡了多久? 请你告诉蒜头君睡了& ...

最新文章

  1. python-- Image 模块
  2. Math.Floor()和Math.Truncate()之间的区别
  3. 201671010456-张琼 实验二 词频统计软件项目报
  4. 刷新你的数据中心冷却词汇
  5. python组合数据分类_Python解决数据样本类别分布不均衡问题
  6. Magento调用静态块 static block
  7. 分成互质组 (信息学奥赛一本通-T1221)
  8. linux进程管道通信缺点,Linux进程通信(IPC)的方式详解
  9. 阿里云盘今日公测:无论用户是否付费,未来都不会限速
  10. 易宝典文章——怎样配置TMG能够使外部用户成功访问Outlook Anywhere?
  11. Common Digester学习
  12. Vue抽离公共方法并全局注册使用
  13. php redis 搜索,一步步实现 Redis 搜索引擎
  14. 为影像数据去除无效值
  15. 2022必看花展 IFEX昆明国际花卉园艺展,新展期11月11-13日
  16. 如何将自己喜欢的图片设置为文件图标
  17. Java正则表达式通过User-Agent获取IOS版本
  18. 用机器学习自制二手房估价模型(附完整过程)
  19. 第三天JAVASE简单题目
  20. LWN: kernel中GCC plugin的未来命运!

热门文章

  1. java 控件汉字显示方格
  2. jquery href属性和click事件冲突
  3. PHP try catch用法
  4. 逻辑斯蒂回归java_机器学习 (五)逻辑斯蒂回归
  5. 前端-页面性能调试:Hiper
  6. JDK8 Stream操作整理
  7. 20145226夏艺华 JAVA预备作业1
  8. c++模板类被继承时他的成员不能被子类看到
  9. Eclips下运行helloworld,弹出手机模拟器上什么也没有
  10. “Internet Explorer无法打开站点,已终止操作”解决