Codeforces Round #645 (Div. 2) D - The Best Vacation 题解(二分+思维)
题目链接
题目大意
一年有n个月,每个月有d[i]天,让你找出连续x天,使其日期的总和最大,可以跨年
题目思路
这里要发现一个性质:即连续的x天一定满足最后一天在月份的结尾,结论是显然的。
然后用两个前缀和,然后二分,二分的方法是二分差值值得学习
代码
#include<map>
#include<cmath>
#include<cstring>
#include<cstdio>
#include<algorithm>
const int maxn=4e5+5;
using namespace std;
typedef long long ll;
ll n,x,d[maxn],prea[maxn],preb[maxn],ans;
int main(){scanf("%lld %lld",&n,&x);for(int i=1;i<=n;i++){scanf("%lld",&d[i]);d[n+i]=d[i];}n=n*2;for(int i=1;i<=n;i++){prea[i]=prea[i-1]+d[i];preb[i]=preb[i-1]+d[i]*(d[i]+1)/2;}for(int i=1;i<=n;i++){if(prea[i]>=x){int pos=lower_bound(prea+1,prea+1+n,prea[i]-x)-prea;ll cha=x-(prea[i]-prea[pos]);//还有cha天不完整,在pos月的最后cha天ll sum=(preb[i]-preb[pos])+(d[pos]+d[pos]-cha+1)*cha/2;ans=max(sum,ans);}}printf("%lld\n",ans);return 0;
}
Codeforces Round #645 (Div. 2) D - The Best Vacation 题解(二分+思维)相关推荐
- Codeforces Round #645 (Div. 2) E - Are You Fired? 题解(思维)
题目链接 题目大意 给你一个长为n的数组前(n+1)/2个数为a[i],后面的数为x,让你求出一个长度k使其所有连续为k的数组之和都大于0 题目思路 首先要找性质,如果k满足,那么显然k*2也满足那么 ...
- Codeforces Round #645 (Div. 2) D. The Best Vacation
Codeforces Round #645 (Div. 2) D. The Best Vacation 题目链接 You've been in love with Coronavirus-chan f ...
- Codeforces Round #645 (Div. 2)(D.The Best Vacation)
题目链接:https://codeforces.com/contest/1358/problem/D 思路:双指针+前缀和 前缀和主要处理了两组数据:sum[]是某月到某月的天数,ans[] 代表某月 ...
- Codeforces Round #641 (Div. 2) D. Orac and Medians 题解(思维)
题目链接 题目大意 就是数组里一段数可以都变成他的中位数,问整个序列能不能变成k.可以变化很多次 题目思路 emmm,根本没什么思路,看了题解感觉根本想不到啊,但是仔细想想其实确实应该那么想. 先令a ...
- codeforces Round #645 (Div. 2)D题解
Codeforces Round #645 (Div. 2)--D题解 作为一名菜鸡,理所当然得没有A出来,这道题数据放小就一水题了,可惜数据这块卡的死死的. 本题最重要的一点就是你要推出来一个结论: ...
- 【Codeforces Round #767 (Div. 2)】 C. Meximum Array 题解
[Codeforces Round #767 (Div. 2) ]C. Meximum Array 题解 1629C: Meximum Array 题解 [Codeforces Round #767 ...
- Codeforces Round #731 (Div. 3) G. How Many Paths? dfs + 拓扑 + 思维
传送门 题意: 给你一张nnn个点mmm条边的图,让你对每个点确定一个编号,规则如下: (1)(1)(1) 对于不能到的点编号为000. (2)(2)(2) 对于只有一条路径能到这个点的点编号为111 ...
- Codeforces Round #716 (Div. 2) D. Cut and Stick 主席树 + 思维
传送门 文章目录 题意: 思路: 题意: 给你个长为nnn的数组aaa,定义好的区间为这个区间中每个数出现的次数≤⌈n2⌉\le \left \lceil \frac{n}{2} \right \rc ...
- Codeforces Round #645 (Div. 2)(AB)
Park Lighting CodeForces - 1358A 思路:水题不解释. 代码如下: #include<bits/stdc++.h> #define ll long long ...
最新文章
- android动画回到原位,使用动画隐藏view后,原来的位置空白
- Edgware.RC1中ZuulFallbackProvider的改进
- 网易云信助春招上“云” ,疫情过后线上招聘或成常态
- FPGA的ip核之概念和分类
- MTK 移植泰文输入法
- java 单元测试_在springboot中写单元测试解决依赖注入和执行后事务回滚问题
- Python二级笔记(1)
- C/C++中MySQL环境配置教程
- mysql amoeba 事务_MySQL基于Amoeba实现读写分离
- 正在连接至zimperium服务器,ZIMPERIUM Mobile IPS (zIPS)
- 原生JS实现一个无缝轮播图插件(支持vue)
- 绿色到黄色到红色的颜色渐变实现
- 站内搜索引擎(ASP.NET)
- html5跳跳蛙小游戏分析,中班科学优秀教案《跳跳蛙》(5页)-原创力文档
- CSS3表单设计–复古
- java8 peek
- 华云数据出席2021信创发展论坛:喜获信创双项殊荣 发布业内首个《信创云基座白皮书》
- Direct托管的Microsoft.DirectX.Direct3DX.dll不同版本产生的问题
- ironpython教程_用IronPython写winform程序-.NET教程,Asp.Net开发
- 我的FLASH情结2010—— 浅谈FLASH WEB GAME与创业
热门文章
- 阅读笔记:What Uncertainties Do We Need in Bayesian Deep Learning for Computer Vision?
- 计算机知识太多了记不住,背得滚瓜烂熟的知识点 为什么一上考场全忘了?这样做事半功倍...
- 三维立体绘图软件(golden software surfer 19) v19.1
- 如何读取MTK 平台IMEI , BT 和WIFI 地址
- matlab图像拼接融合(四种方法)
- 天啊!吃饭用的勺子都联网了~手把手带你DIY一款智能百味勺子
- Unity 2D平面显示3D模型(RenderTextrue)
- 零售业10年蜕变,未来的路又在何方?
- 解决:为保证帐号安全,您在这里的注册受到限制。 建议您下载网易官方手机客户端邮箱大师进行注册 原文信息: 解决:为保证帐号安全,您在这里的注册受到限制。 建议您下载网易官方手机客户端邮箱大师进行注册
- 一起来看流星雨剧情简介/剧情介绍/剧情分集介绍第十七集