给定一个非负整数序列A,每次操作可以选择一个数然后减掉1,要求进行不超过m次操作使得存在一个Ak=0且max{|Ai−Ai+1|}最小,输出这个最小lk以及最小值。

Solution

最大值最小,显然是需要二分的,而且我们发现答案确实是有单调性的。

接下来我们正着扫一遍整个序列,把差值大于二分出来的值的数调整值合法。

接下来我们就要考虑ak=0的情况,这个东西并没有什么单调性,我们只能从头枚举,直到找到第一个满足要求的就可以了。

考虑当一个数变成零之后,为了满足我们二分出来的答案,我们需要构造这样一个东西。

0                      0

0 0                0 0

0 0 0          0 0 0

0 0 0 0    0 0 0 0

0 0 0 0 0 0 0 0 0

两边是等差数列,为了计算序列的长度,我们需要计算出两个数组表示当ai=0是等差数列的左端点和右端点。

我们可以把左右分开算。

比如计算右端点,我们从i向右暴力扩展,当发现当前数字的值小于目标值是就不再扩展了,因为后面已经符合要求了。

最后枚举点,用等差数列求和算一下就可以了。

Code

#include<iostream>
#include<cstdio>
#define N 1000002
using namespace std;
typedef long long ll;
ll ans2,ans,b[N],s1[N],le[N],ri[N],a[N],n,m,sum[N];
bool check(ll pos){
ll num=;
for(int i=;i<=n;++i)b[i]=a[i];
for(int i=;i<=n;++i)
if(b[i]-b[i-]>pos)num+=b[i]-b[i-]-pos,b[i]=b[i-]+pos;
if(num>m)return ;
for(int i=n-;i>=;--i)
if(b[i]-b[i+]>pos)num+=b[i]-b[i+]-pos,b[i]=b[i+]+pos;
if(num>m)return ;
for(int i=;i<=n;++i)sum[i]=sum[i-]+b[i];
for(int i=,j=;i<=n;++i){
while(b[j]<=(i-j)*pos&&j<i)j++;
le[i]=j;
}
for(int i=n,j=n;i>=;--i){
while(b[j]<=(j-i)*pos&&j>i)j--;
ri[i]=j;
}
for(int i=;i<=n;++i)
if((num+sum[ri[i]]-sum[le[i]-]-pos*((i-le[i])*(i-le[i]+)+(ri[i]-i)*(ri[i]-i+))/)<=m)
{ans=i;return ;}
return ;
}
int main(){
scanf("%lld%lld",&n,&m);
ll l=,r=1e9;
for(int i=;i<=n;++i)scanf("%lld",&a[i]);
while(l<=r){
int mid=(l+r)>>;
if(check(mid)){
ans2=mid;
r=mid-;
}
else l=mid+;
}
printf("%lld %lld",ans,ans2);
return ;
}

[POI2012]STU-Well(二分答案+神仙操作)的更多相关文章

  1. BZOJ_2792_[Poi2012]Well_二分答案

    BZOJ_2792_[Poi2012]Well_二分答案 Description 给出n个正整数X1,X2,...Xn,可以进行不超过m次操作,每次操作选择一个非零的Xi,并将它减一. 最终要求存在某 ...

  2. BZOJ 2792 Poi2012 Well 二分答案

    题目大意:给定一个非负整数序列A.每次操作能够选择一个数然后减掉1,要求进行不超过m次操作使得存在一个Ak=0且max{Ai−Ai+1}最小,输出这个最小值以及此时最小的k 二分答案,然后验证的时候首 ...

  3. 洛谷P4344 脑洞治疗仪 [SHOI2015] 线段树+二分答案/分块

    !!!一道巨恶心的数据结构题,做完当场爆炸:) 首先,如果你用位运算的时候不小心<<打成>>了,你就可以像我一样陷入疯狂的死循环改半个小时 然后,如果你改出来之后忘记把陷入死循 ...

  4. [校内模拟赛T3]火花灿灿_二分答案_组合数学_贪心

    火花灿灿 题目: 数据范围: 题解: 这个题真的是个神仙题. 我们对于每块石头维护一个$01$串. 这个$01$串的长度是操作次数. 如果$01$串的当前位是$1$,表示这次操作中当前石子被划分到了贡 ...

  5. noip推荐系列:遥控车[字符串+高精+二分答案]

    [问题描述] 平平带着韵韵来到了游乐园,看到了n辆漂亮的遥控车,每辆车上都有一个唯一的名字name[i].韵韵早就迫不及待地想玩名字是s的遥控车.可是韵韵毕竟还小,她想象的名字可能是一辆车名字的前缀( ...

  6. NOIP2012疫情控制(二分答案+倍增+贪心)

    Description H国有n个城市,这n个城市用n-1条双向道路相互连通构成一棵树,1号城市是首都,也是树中的根节点. H国的首都爆发了一种危害性极高的传染病.当局为了控制疫情,不让疫情扩散到边境 ...

  7. [BZOJ1014] [JSOI2008] 火星人prefix (splay & 二分答案)

    Description 火星人最近研究了一种操作:求一个字串两个后缀的公共前缀.比方说,有这样一个字符串:madamimadam,我们将这个字符串的各个字符予以标号:序号: 1 2 3 4 5 6 7 ...

  8. Rabbit的机器人-二分答案

    Rabbit的机器人 思路 : 可以 推知 挡板的位置与最后 一步的方向有关 .如果是 R 根据题目要求那么最终结果一定是在>0的位置, 因为按照题意要求的最终不能回到重复走过的位置.所以如果有 ...

  9. BZOJ1758[Wc2010]重建计划——分数规划+长链剖分+线段树+二分答案+树形DP

    题目描述 输入 第一行包含一个正整数N,表示X国的城市个数. 第二行包含两个正整数L和U,表示政策要求的第一期重建方案中修建道路数的上下限 接下来的N-1行描述重建小组的原有方案,每行三个正整数Ai, ...

随机推荐

  1. CRM系统设计方案

    CRM系统设计方案 - 百度文库https://wenku.baidu.com/view/a34eebeb0242a8956bece473.html 服务支持http://www.uf-crm.com ...

  2. [转帖]Nginx rewrite模块深入浅出详解

    Nginx rewrite模块深入浅出详解 https://www.cnblogs.com/beyang/p/7832460.html rewrite模块(ngx_http_rewrite_modul ...

  3. Executor介绍

    1.Executor介绍: Executor是mybatis的核心接口之一,其中定义了数据库操作的基本方法,它的子类结构图如下:这这张关系图中,涉及到了模板方法模式和装饰器模式.BaseExecuto ...

  4. iframe全屏显示

    <iframe webkitallowfullscreen="" mozallowfullscreen="" allowfullscreen=" ...

  5. python之路--类的约束, 异常处理, MD5, 日志处理

    一 . 类的约束 1. 写一个父类,父类中的某个方法要抛出一个异常 NotImplementedError class Base: # 对子类进行了约束. 必须重写该方法 # 以后上班了. 拿到公司代 ...

  6. centos5 安装redmine

    一.下载依赖包 yum -y install libxslt-devel libyaml-devel libxml2-devel gdbm-devel libffi-devel yum -y inst ...

  7. Servlet学习的一些笔记

    Servlet一点笔记 Servlet:Server Applet,全称Java Servlet,是运行在Web服务器或应用服务器上的程序,它是作为来自Web浏览器或其他HTTP客户端的请求和HTTP ...

  8. LR运行负载测试场景-笔记

    控制虚拟用户的行为:通用如图方式 查看用户的运行信息 在控制器释放前释放集合点用户 记录运行时注释---scenario-execution notes Vuser 对话框:初始化.运行.停止运行用户 ...

  9. vue 響應接口

    全局方式: 增加屬性和set()和get(): vue.set(targname,key,vaule) targname:對象名或者數組名 key:字符串 value:任何值 刪除屬性和set()和g ...

  10. Learning to Rank for IR的评价指标—MAP,NDCG,MRR

    转自: https://www.cnblogs.com/eyeszjwang/articles/2368087.html MAP(Mean Average Precision):单个主题的平均准确率是 ...