2019 蓝桥杯省赛 B 组模拟赛(一) J. 程序设计:蒜厂年会 环形连续子序列求和问题
题目描述
在蒜厂年会上有一个抽奖,在一个环形的桌子上,有 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. 程序设计:蒜厂年会 环形连续子序列求和问题相关推荐
- 2019 蓝桥杯省赛 B 组模拟赛(一)蒜厂年会
2019 蓝桥杯省赛 B 组模拟赛(一)蒜厂年会 这题有两种情况 1.最大的和是在0~n-1 2.最大的和越过了首尾 这时候只要用n个数的和 - 0~n-1 的连续的最小和 这是求连续子集最大.最小 ...
- 2019 蓝桥杯省赛 B 组模拟赛(一)——计蒜客(未完待续)
比赛链接: 2019 蓝桥杯省赛 B 组模拟赛(一) 友情提示: 蓝桥杯的头文件,如果不是都记得,可以直接万能头文件 #include <bits/stdc++.h>, 不过有的时候,这样 ...
- 2018 蓝桥杯省赛 B 组模拟赛(一)--封印之门
题目链接:https://nanti.jisuanke.com/t/A1594 蒜头君被暗黑军团包围在一座岛上,所有通往近卫军团的路都有暗黑军团把手.幸运的是,小岛上有一扇上古之神打造的封印之门,可以 ...
- 52-2018 蓝桥杯省赛 B 组模拟赛(一)java
最近蒜头君喜欢上了U型数字,所谓U型数字,就是这个数字的每一位先严格单调递减,后严格单调递增.比如 212212 就是一个U型数字,但是 333333, 9898, 567567, 313133131 ...
- 2020年 第11届 蓝桥杯 C/C++ B组 省赛真题详解及小结【第1场省赛2020.7.5】【Java版】
蓝桥杯 Java B组 省赛真题详解及小结汇总[2013年(第4届)~2020年(第11届)] 注意:部分代码及程序 源自 蓝桥杯 官网视频(历年真题解析) 郑未老师. 2013年 第04届 蓝桥杯 ...
- 第一届『Citric杯』NOIP提高组模拟赛 题解
[官方题解]第一届『Citric杯』NOIP提高组模拟赛 题解 第一题 柠檬超市 这题是本次模拟赛的送分题.做法显然. 但是注意此题有一个陷阱: 注意W和C的规模都是10^9,所以如果直接用doubl ...
- python解答蓝桥杯真题3 省模拟赛 计算机存储中有多少字节
python解答蓝桥杯真题3 省模拟赛 计算机存储中有多少字节 题目 问题描述 在计算机存储中,12.5MB是多少字节? 答案提交 这是一道结果填空的题,你只需要算出结果后提交即可.本题的结果为一个整 ...
- 2015年第六届蓝桥杯C/C++B组省赛题目解析
1.奖券数目 有些人很迷信数字,比如带"4"的数字,认为和"死"谐音,就觉得不吉利. 虽然这些说法纯属无稽之谈,但有时还要迎合大众的需求.某抽奖活动的奖券号码是 ...
- 计蒜客2019蓝桥杯省赛B组模拟赛(一)题目及解析
蓝桥杯历年真题题目及题解目录汇总 A. 结果填空:钟表 题库链接 分值: 5 一天蒜头君 22:28:45 开始睡觉,06:24:26 醒来之后,蒜头君在想,今天我睡了多久? 请你告诉蒜头君睡了& ...
最新文章
- python-- Image 模块
- Math.Floor()和Math.Truncate()之间的区别
- 201671010456-张琼 实验二 词频统计软件项目报
- 刷新你的数据中心冷却词汇
- python组合数据分类_Python解决数据样本类别分布不均衡问题
- Magento调用静态块 static block
- 分成互质组 (信息学奥赛一本通-T1221)
- linux进程管道通信缺点,Linux进程通信(IPC)的方式详解
- 阿里云盘今日公测:无论用户是否付费,未来都不会限速
- 易宝典文章——怎样配置TMG能够使外部用户成功访问Outlook Anywhere?
- Common Digester学习
- Vue抽离公共方法并全局注册使用
- php redis 搜索,一步步实现 Redis 搜索引擎
- 为影像数据去除无效值
- 2022必看花展 IFEX昆明国际花卉园艺展,新展期11月11-13日
- 如何将自己喜欢的图片设置为文件图标
- Java正则表达式通过User-Agent获取IOS版本
- 用机器学习自制二手房估价模型(附完整过程)
- 第三天JAVASE简单题目
- LWN: kernel中GCC plugin的未来命运!