蒜厂年会|计蒜客2019蓝桥杯省赛 B 组模拟赛(一)
样例输入:
3
1 -2 1
样例输出:
2
方法一:
将环形数组拆分成为普通数组,(通过搬运复制数据到尾部),再求前缀和,找出最大前缀和。因为枚举了每一个起点,所以最大连续和也一定出现在前缀和中。。。
1 #include<iostream> 2 using namespace std; 3 4 int n; 5 long long arr[20010]; 6 long long s[20010]; 7 8 int main(){ 9 /*freopen("in.txt","r",stdin);*/ 10 cin>>n; 11 for(int i=1;i<=n;i++){ 12 cin>>arr[i]; 13 } 14 int ans = -1; 15 int i; 16 for(i = 1;i<=n;i++){ 17 //搬运数据 18 for(int j=1;j<i;j++){ 19 arr[n+j] = arr[j]; 20 } 21 int len = n + i; 22 //求出最大的连续和(前缀和) 23 s[i-1] = 0; 24 for(int p = i;p<=len;p++){ 25 s[p] = s[p-1] + arr[p]; 26 if(s[p] > ans) ans = s[p]; 27 } 28 29 } 30 cout<<ans<<endl; 31 return 0; 32 }
方法二:
1:如果子序列的最大和在1~n的范围内,直接输出最大值即可。2:如果子序列的最大和横跨了尾部和头部,则先求出连续的最小子序列和,然后用总和减去最小子串和就是最大子串和,所以求
1~n的最大和最小连续子序列和(记为Mx和Mi),然后输出Mx和sum-Mi即可。
1 #include<iostream> 2 #include<cstdio> 3 #include<cstring> 4 #include<algorithm> 5 using namespace std; 6 const int maxn = 2e5+5; 7 #define INF 0x3f3f3f3f 8 #define ll long long 9 10 ll sum,mx,mi,Mx,Mi; 11 ll num[maxn],n; 12 13 int main(){ 14 /*freopen("in.txt","r",stdin);*/ 15 cin>>n; 16 memset(num,0,sizeof(num)); 17 Mx=-INF; 18 Mi=INF; 19 mx=mi=sum=0; 20 21 for( int i=0; i<n; i++ ){ 22 cin>>num[i]; 23 sum+=num[i]; 24 mx+=num[i]; 25 mi+=num[i]; 26 Mx=max(Mx,mx); 27 Mi=min(Mi,mi); 28 if(mi>0) mi=0; 29 if(mx<0) mx=0; 30 } 31 cout<<max(Mx,sum-Mi)<<endl; 32 return 0; 33 }
转载于:https://www.cnblogs.com/Bravewtz/p/10397328.html
蒜厂年会|计蒜客2019蓝桥杯省赛 B 组模拟赛(一)相关推荐
- 2019 蓝桥杯省赛 B 组模拟赛(一)——计蒜客(未完待续)
比赛链接: 2019 蓝桥杯省赛 B 组模拟赛(一) 友情提示: 蓝桥杯的头文件,如果不是都记得,可以直接万能头文件 #include <bits/stdc++.h>, 不过有的时候,这样 ...
- 2019 蓝桥杯省赛 B 组模拟赛(一)蒜厂年会
2019 蓝桥杯省赛 B 组模拟赛(一)蒜厂年会 这题有两种情况 1.最大的和是在0~n-1 2.最大的和越过了首尾 这时候只要用n个数的和 - 0~n-1 的连续的最小和 这是求连续子集最大.最小 ...
- 【模拟赛】2019 蓝桥杯省赛 B 组模拟赛(一)
A(填) 钟表 方法一:利用 23:59:60 B(填) 青蛙爬井 方法一:枚举 * 危,严重错误:算出来是 862,感觉心都凉了.day 竟然是从 1 开始的. import java.util.* ...
- 2020年 第11届 蓝桥杯 C/C++ B组 省赛真题详解及小结【第1场省赛2020.7.5】【Java版】
蓝桥杯 Java B组 省赛真题详解及小结汇总[2013年(第4届)~2020年(第11届)] 注意:部分代码及程序 源自 蓝桥杯 官网视频(历年真题解析) 郑未老师. 2013年 第04届 蓝桥杯 ...
- python解答蓝桥杯真题3 省模拟赛 计算机存储中有多少字节
python解答蓝桥杯真题3 省模拟赛 计算机存储中有多少字节 题目 问题描述 在计算机存储中,12.5MB是多少字节? 答案提交 这是一道结果填空的题,你只需要算出结果后提交即可.本题的结果为一个整 ...
- 2015年第六届蓝桥杯C/C++B组省赛题目解析
1.奖券数目 有些人很迷信数字,比如带"4"的数字,认为和"死"谐音,就觉得不吉利. 虽然这些说法纯属无稽之谈,但有时还要迎合大众的需求.某抽奖活动的奖券号码是 ...
- 2018 蓝桥杯省赛 B 组模拟赛(一)--封印之门
题目链接:https://nanti.jisuanke.com/t/A1594 蒜头君被暗黑军团包围在一座岛上,所有通往近卫军团的路都有暗黑军团把手.幸运的是,小岛上有一扇上古之神打造的封印之门,可以 ...
- 52-2018 蓝桥杯省赛 B 组模拟赛(一)java
最近蒜头君喜欢上了U型数字,所谓U型数字,就是这个数字的每一位先严格单调递减,后严格单调递增.比如 212212 就是一个U型数字,但是 333333, 9898, 567567, 313133131 ...
- 计蒜客2019蓝桥杯省赛B组模拟赛(一)题目及解析
蓝桥杯历年真题题目及题解目录汇总 A. 结果填空:钟表 题库链接 分值: 5 一天蒜头君 22:28:45 开始睡觉,06:24:26 醒来之后,蒜头君在想,今天我睡了多久? 请你告诉蒜头君睡了& ...
- 计蒜客 2019 蓝桥杯省赛 B 组模拟赛(一)
D题:马的管辖 二进制枚举方案.判断该方案是否全部能被覆盖,将最优方案存下来并进行剪枝. #include<iostream> #include<cstring> #inclu ...
最新文章
- linux下c语言俄罗斯方块,C语言实现俄罗斯方块源代码
- html图片展示不间隙,求助大神 如让图片展示在li标签里面,不要间隙 谢谢
- Android 第一个OpenGL ES程序
- MyBatis collection的两种形式——MyBatis学习笔记之九
- Winform中创建超链接,点击跳转网页
- 对Html里的title属性的换行
- 二分查找向上还是向下取整_113、股市中的跳空缺口判断技巧是向上还是向下
- Java中的优先队列——二叉堆
- 高一计算机函数公式,高一函数公式汇总
- 熔断器 java_SpringCloud之熔断器Hystrix的实现
- esxi 环境 西数硬盘测试软件,手把手教你测试固态硬盘!硬盘测试软件大汇总
- 2009年经典语录雷人总汇
- 荔枝派Zero小白(一)
- 钱颖一:人的创造力从哪里来?(转)
- C语言计算两纬线间子午线弧长1/2
- Spring+SpringMVC+Hibernate实现投票/调查问卷网站
- 如何解决安装Windows 11/Windows 10时找不到磁盘驱动器(找不到驱动器)
- 如何把视频声音转成文字
- 最好用的_古书制作工具_古籍排版工具_古文排版_自动生成古书_多种古书风格_古籍制作工具
- 全国大学生软件创新大赛一等奖作品 —— HyllCube 三维四子棋
热门文章
- linux tcp 113错误,linux系统报tcp_mark_head_lost错误的处理方法
- python实训报告5000字_实训总结5000字
- J - Crashing Robots
- c语言程序设计21点扑克牌,c语言程序设计 21点扑克牌游戏
- 线性卷积和循环卷积(圆周卷积)
- emc re 整改 超标_EMC测试及整改对策.ppt
- 通过css为类生成器给文本字体加上书名号,
- easypanel mysql错误_kangle easypanel面板安装后初始化教程
- 微信群导出群成员时间数据_教你一招轻松导出微信群名单
- oracle中的than,range分区values less than,代表的是小于等于还是小于啊。