CF1358D The Best Vacation
思路
做这道题主要是需要发现一个性质:选择的区间必定是从某一个月的最后一天开始往前连续的一段区间。
考虑如何证明这个结论,设这个月有 \(x\) 天,假设有更优的方案满足到下一个月的第 \(y\) 天,则我们发现下一个月中的拥抱数为 \(\sum_{i=1}^{y} i\),而显然任意一个长度为 \(y\) 的区间的最小拥抱数就是这个值,我们往前移动一定不劣于这个解。
代码
#include<bits/stdc++.h>
using namespace std;
#define int long long
int const N=1e6+10;
int a[N],sum[N],qsum[N];
inline int check(int l,int r){return qsum[r]-qsum[l-1];}
signed main(){
ios::sync_with_stdio(false);
cin.tie(0),cout.tie(0);
int n,x;cin>>n>>x;int ans=0;
for (int i=1;i<=n;++i) cin>>a[i],qsum[i]=qsum[i-1]+a[i],sum[i]=sum[i-1]+(1+a[i])*a[i]/2;
for (int i=1;i<=n;++i) a[i+n]=a[i];
n<<=1;
for (int i=1;i<=n;++i) qsum[i]=qsum[i-1]+a[i],sum[i]=sum[i-1]+(1+a[i])*a[i]/2;
for (int i=(n/2);i<=n;++i){
int l=1,r=i;
while (l<r){
if (l+1==r){if (check(r,i)<=x);else l=r;break;}
int mid=(l+r)>>1;
if (check(mid,i)<=x) r=mid-1;
else l=mid;
}
++l;
int q=x-(qsum[i]-qsum[l-1]);
int summ;
if (l>i+1) summ=0;
else summ=sum[i]-sum[l-1]+(a[l-1]+(a[l-1]-q+1))*q/2;
ans=max(ans,summ);
}
cout<<ans<<'\n';
return 0;
}
CF1358D The Best Vacation的更多相关文章
- 【BZOJ】【3550】【ONTAK2010】Vacation
网络流/费用流 Orz太神犇了这题…… 我一开始想成跟Intervals那题一样了……每个数a[i]相当于覆盖了(a[i]-n,a[i]+n)这个区间……但是这样是错的!!随便就找出反例了……我居然还 ...
- BZOJ3550: [ONTAK2010]Vacation
3550: [ONTAK2010]Vacation Time Limit: 10 Sec Memory Limit: 96 MBSubmit: 91 Solved: 71[Submit][Stat ...
- uva 10192 Vacation(最长公共子)
uva 10192 Vacation The Problem You are planning to take some rest and to go out on vacation, but you ...
- 568. Maximum Vacation Days
Problem statement: LeetCode wants to give one of its best employees the option to travel among N ci ...
- [LeetCode] Maximum Vacation Days 最大化休假日
LeetCode wants to give one of its best employees the option to travel among N cities to collect algo ...
- Atcoder C - Vacation ( DP )
C - Vacation Time Limit: 2 sec / Memory Limit: 1024 MB Score : 100100 points Problem Statement Taro' ...
- Holiday、Vacation、Days off、Leave、Break
http://write.scu.edu.tw/view.php?bd=mistake&no=25 這些字在英文的用法中都有放假.休息的意思,但用法卻不太一樣,接下來就來看看它們的不同吧. 『 ...
- bzoj 4097: [Usaco2013 dec]Vacation Planning
4097: [Usaco2013 dec]Vacation Planning Description Air Bovinia is planning to connect the N farms (1 ...
- UVA.10192 Vacation (DP LCS)
UVA.10192 Vacation (DP LCS) 题意分析 某人要指定旅游路线,父母分别给出了一系列城市的旅游顺序,求满足父母建议的最大的城市数量是多少. 对于父母的建议分别作为2个子串,对其做 ...
- BZOJ_3550_[ONTAK2010]Vacation&&BZOJ_1283:_序列_网络流解线性规划
BZOJ_3550_[ONTAK2010]Vacation&&BZOJ_1283:_序列_网络流解线性规划 Description 给出一个长度为 的正整数序列Ci,求一个子序列,使得 ...
随机推荐
- nginx压力测试及限速
测试工具:Apache ab windows安装教程:https://www.cnblogs.com/laijinquan/p/14694655.html 64位下载地址:https://www.ap ...
- PHP8.1.10手动安装教程及报错解决梳理
安装教程参考一:https://www.cnblogs.com/haw2106/p/9839655.html 安装教程参考二:https://www.cnblogs.com/jiangfeilong/ ...
- v-model双向绑定原理
1 <div id="app"> 2 <div>{{msg}}</div> 3 <!-- 写法1 --> 4 <input t ...
- 【JVM】根节点枚举与安全点
本文已收录至Github,推荐阅读 Java随想录 微信公众号:Java随想录 CSDN: 码农BookSea 转载请在文首注明出处,如发现恶意抄袭/搬运,会动用法律武器维护自己的权益.让我们一起维护 ...
- Qt大型工程开发技术选型Part3:Qt调用C#编写的COM组件实例
Qt大型工程开发技术选型Part3:Qt调用C#编写的COM组件实例以及错误总结 ok,前面铺垫了那么多,现在来写一个开发实例,我会把其中隐藏的坑和陷阱简单谈谈,并在文章最后总结. 不愿意看长篇大论的 ...
- [数据与分析可视化] D3入门教程1-d3基础知识
d3.js入门教程1-d3基础知识 文章目录 d3.js入门教程1-d3基础知识 1 HTML介绍 1.1 什么是HTML? 1.2 自定义文档样式CSS 1.3 构建svg图形 2 d3绘图入门 2 ...
- BC4-牛牛学说话之-浮点数
题目描述 会说整数之后,牛牛开始尝试浮点数(小数),输入一个浮点数,输出这个浮点数. 输入描述 输入一个浮点数 输出描述 输出一个浮点数,保留三位小数 示例 1 输入:1.359578 输出:1.36 ...
- C++Day09 深拷贝、写时复制(cow)、短字符串优化
一.std::string 的底层实现 1.深拷贝 1 class String{ 2 public: 3 String(const String &rhs):m_pstr(new char[ ...
- Angular在用户登录后设置授权请求头headers.append('Authorization', 'token');
方案1. 使用Angular http import {Injectable} from '@angular/core'; import {Http, Headers} from '@angular ...
- ADG无法同步:TT00进程报错 Error 12514
环境: Oracle 19.16 ADG (Single Instance -> RAC) 在配置ADG的场景,发现ADG不能同步. 1.查看报错信息 2.oerr查看该错误说明 3.尝试sql ...