题目链接

题目大意

一年有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 题解(二分+思维)相关推荐

  1. Codeforces Round #645 (Div. 2) E - Are You Fired? 题解(思维)

    题目链接 题目大意 给你一个长为n的数组前(n+1)/2个数为a[i],后面的数为x,让你求出一个长度k使其所有连续为k的数组之和都大于0 题目思路 首先要找性质,如果k满足,那么显然k*2也满足那么 ...

  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 ...

  3. Codeforces Round #645 (Div. 2)(D.The Best Vacation)

    题目链接:https://codeforces.com/contest/1358/problem/D 思路:双指针+前缀和 前缀和主要处理了两组数据:sum[]是某月到某月的天数,ans[] 代表某月 ...

  4. Codeforces Round #641 (Div. 2) D. Orac and Medians 题解(思维)

    题目链接 题目大意 就是数组里一段数可以都变成他的中位数,问整个序列能不能变成k.可以变化很多次 题目思路 emmm,根本没什么思路,看了题解感觉根本想不到啊,但是仔细想想其实确实应该那么想. 先令a ...

  5. codeforces Round #645 (Div. 2)D题解

    Codeforces Round #645 (Div. 2)--D题解 作为一名菜鸡,理所当然得没有A出来,这道题数据放小就一水题了,可惜数据这块卡的死死的. 本题最重要的一点就是你要推出来一个结论: ...

  6. 【Codeforces Round #767 (Div. 2)】 C. Meximum Array 题解

    [Codeforces Round #767 (Div. 2) ]C. Meximum Array 题解 1629C: Meximum Array 题解 [Codeforces Round #767 ...

  7. Codeforces Round #731 (Div. 3) G. How Many Paths? dfs + 拓扑 + 思维

    传送门 题意: 给你一张nnn个点mmm条边的图,让你对每个点确定一个编号,规则如下: (1)(1)(1) 对于不能到的点编号为000. (2)(2)(2) 对于只有一条路径能到这个点的点编号为111 ...

  8. Codeforces Round #716 (Div. 2) D. Cut and Stick 主席树 + 思维

    传送门 文章目录 题意: 思路: 题意: 给你个长为nnn的数组aaa,定义好的区间为这个区间中每个数出现的次数≤⌈n2⌉\le \left \lceil \frac{n}{2} \right \rc ...

  9. Codeforces Round #645 (Div. 2)(AB)

    Park Lighting CodeForces - 1358A 思路:水题不解释. 代码如下: #include<bits/stdc++.h> #define ll long long ...

最新文章

  1. android动画回到原位,使用动画隐藏view后,原来的位置空白
  2. Edgware.RC1中ZuulFallbackProvider的改进
  3. 网易云信助春招上“云” ,疫情过后线上招聘或成常态
  4. FPGA的ip核之概念和分类
  5. MTK 移植泰文输入法
  6. java 单元测试_在springboot中写单元测试解决依赖注入和执行后事务回滚问题
  7. Python二级笔记(1)
  8. C/C++中MySQL环境配置教程
  9. mysql amoeba 事务_MySQL基于Amoeba实现读写分离
  10. 正在连接至zimperium服务器,ZIMPERIUM Mobile IPS (zIPS)
  11. 原生JS实现一个无缝轮播图插件(支持vue)
  12. 绿色到黄色到红色的颜色渐变实现
  13. 站内搜索引擎(ASP.NET)
  14. html5跳跳蛙小游戏分析,中班科学优秀教案《跳跳蛙》(5页)-原创力文档
  15. CSS3表单设计–复古
  16. java8 peek
  17. 华云数据出席2021信创发展论坛:喜获信创双项殊荣 发布业内首个《信创云基座白皮书》
  18. Direct托管的Microsoft.DirectX.Direct3DX.dll不同版本产生的问题
  19. ironpython教程_用IronPython写winform程序-.NET教程,Asp.Net开发
  20. 我的FLASH情结2010—— 浅谈FLASH WEB GAME与创业

热门文章

  1. 阅读笔记:What Uncertainties Do We Need in Bayesian Deep Learning for Computer Vision?
  2. 计算机知识太多了记不住,背得滚瓜烂熟的知识点 为什么一上考场全忘了?这样做事半功倍...
  3. 三维立体绘图软件(golden software surfer 19) v19.1
  4. 如何读取MTK 平台IMEI , BT 和WIFI 地址
  5. matlab图像拼接融合(四种方法)
  6. 天啊!吃饭用的勺子都联网了~手把手带你DIY一款智能百味勺子
  7. Unity 2D平面显示3D模型(RenderTextrue)
  8. 零售业10年蜕变,未来的路又在何方?
  9. 解决:为保证帐号安全,您在这里的注册受到限制。 建议您下载网易官方手机客户端邮箱大师进行注册 原文信息: 解决:为保证帐号安全,您在这里的注册受到限制。 建议您下载网易官方手机客户端邮箱大师进行注册
  10. 一起来看流星雨剧情简介/剧情介绍/剧情分集介绍第十七集