正解:二分/贪心

解题报告:

传送门$QwQ$

首先这里是二分还是蛮显然的?考虑二分那个最大值,然后先保证一个老师是合法的再看另一个老师那里是否合法就成$QwQ$.

发现不太会搞这个合不合法的所以咕了.$QAQ$.

然后还有一个很神的方法是直接贪心,大概港下$QwQ$.

先考虑如果只有一个宿管,显然能合法就尽量合法,设当前合法的房间数为$cnt$,就直接看$\sum_{j=1}^{i+d\cdot i}$和$(cnt+1)\cdot b$的关系就成.正确性十分显然?就对于不合法的房间,反正都不合法了不如直接所有人都逃出去给后面的房间做贡献嘛$QwQ$.

然后现在变成了两个宿管,发现分别这么做就行$QwQ$.

大概证明下两边是麻油影响的,,,,?首先当两边能调配的人不重叠的时候正确性是显然的,要考虑的就只有重叠的时候的重叠那一段.

考虑如果发生影响了,一定是左右两边对中间的人的需求量大于中间人的数量了.但是发现这是不可能的.考虑设左侧不重叠的数量为$x$,右侧不重叠的数量为$y$,左侧需求等于右侧需求等于$d$,然后中间的人数量就是$n\cdot b-x-y$.

现在如果先优先满足左边的需求,也就说剩余的人的数量就是$n\cdot b-d-y$,现在要比较这个数与$d-y$的关系.

因为显然有$n\cdot b\geq 2\cdot d$,所以有$n\cdot b-d-y\geq d-y$,也就说不存在上面猜测的需求量大于数量的情况,所以一定没有影响.

所以分别做着就成$QwQ$.

#include<bits/stdc++.h>
using namespace std;
#define il inline
#define gc getchar()
#define int long long
#define t(i) edge[i].to
#define ri register int
#define rc register char
#define rb register bool
#define rp(i,x,y) for(ri i=x;i<=y;++i)
#define my(i,x,y) for(ri i=x;i>=y;--i)
#define e(i,x) for(ri i=head[x];i;i=edge[i].nxt) const int N=+;
int n,d,b,sum[N],as1,as2,t; il int read()
{
rc ch=gc;ri x=;rb y=;
while(ch!='-' && (ch>'' || ch<''))ch=gc;
if(ch=='-')ch=gc,y=;
while(ch>='' && ch<='')x=(x<<)+(x<<)+(ch^''),ch=gc;
return y?x:-x;
} signed main()
{
//freopen("949d.in","r",stdin);freopen("949d.out","w",stdout);
n=read();d=read();b=read();rp(i,,n)sum[i]=sum[i-]+read();
rp(i,,n>>){if(sum[min(n,i*(d+))]>=b*(as1+))++as1;if(sum[n]-sum[max(0ll,n-i*(d+))]>=b*(as2+))++as2;}
if(n&){t=(n+)>>;if(sum[min(n,t*(d+))]>=b*(as1+))++as1;}else t=n>>;
printf("%lld\n",max(t-as1,(n>>)-as2));
return ;
}

随机推荐

  1. 求eclipse中的java build path 详解

    我也找了一下资料,但未找到相关的正式说明,我只能凭经验告诉你. 1,Source是指资源的路径.例如在没有包含res之前,资源是放在与src同级位置,或者通过/res/*.*来操作的.2,Projec ...

  2. SVN的使用与教程

    1.先下载SVN安装包 SVN安装教程

  3. cesium 基础

    scaleByDistance : new Cesium.NearFarScalar(1.5e2, 1.5, 8.0e6, 0.0),--(近值,近端放大率,远值,远端放大率) 给定距离视点的近值和远 ...

  4. 【BestCoder Round #93 1002】MG loves apple

    [题目链接]:http://acm.hdu.edu.cn/showproblem.php?pid=6020 [题意] 给你一个长度为n的数字,然后让你删掉k个数字,问你有没有删数方案使得剩下的N-K个 ...

  5. hdu 1217 Arbitrage(佛洛依德)

    Arbitrage Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total S ...

  6. Python 3.7.0 For Mac版软件安装教程附下载地址

    https://www.jianshu.com/p/f02d6f01eba7

  7. H3C 高级ACL部署位置示例

  8. poj 3279(开关问题)(待完成)

    传送门:Problem 3279 #include<iostream> #include<cstdio> #include<cstring> using names ...

  9. .gitkeep常用写法

    # win & OSX system files .DS_Store Thumbs.db ehthumbs.db Desktop.ini # IDE files .idea # project ...

  10. windows常用命令行命令

    https://blog.csdn.net/qq_32451373/article/details/77743869 打开"运行"对话框(Win+R),输入cmd,打开控制台命令窗 ...