正解:二分/贪心

解题报告:

传送门$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. HDFS Concepts-blocks

  2. oracle函数 NEW_TIME(dt1,c1,c2)

    [功能]:给出时间dt1在c1时区对应c2时区的日期和时间 [参数]:dt1,d2 日期型 [返回]:日期时间 [参数]:c1,c2对应的 时区及其简写 大西洋标准时间:AST或ADT 阿拉斯加_夏威 ...

  3. tensorflow 卷积层

    TensorFlow 卷积层   让我们看下如何在 TensorFlow 里面实现 CNN. TensorFlow 提供了 tf.nn.conv2d() 和 tf.nn.bias_add() 函数来创 ...

  4. Tensorflow中tf.ConfigProto()详解

    参考Tensorflow Machine Leanrning Cookbook tf.ConfigProto()主要的作用是配置tf.Session的运算方式,比如gpu运算或者cpu运算 具体代码如 ...

  5. ∆ (triangle)

    2.1 题目描述 给定一个无自环重边的无向图,求这个图的三元环1的个数以及补图2的三元环个数. 2.2 输入格式 第一行 2 个数 n, m ,分别表示图的点数.边数. 接下来 m 行,每行两个数 u ...

  6. python新知识

    # 强制字符串转化 repr(1.1 + 2.2) # 字符串换行 a = "hello, world. " \ "it's a nice day. " \ & ...

  7. win2d 渐变颜色

    本文告诉大家如何在 win2d 使用渐变颜色 线条渐变 在 UWP 的 Win2d 使用渐变颜色需要 CanvasLinearGradientBrush 做颜色,本文告诉大家如何在 win2d 使用 ...

  8. SVN中如何执行clean up

    在要清理的文件夹上点右键,菜单:TortoiseSVN--选择cleanup,会出现一个菜单栏,在你菜单栏有一个属性breaklock意思是打破锁定,你勾选打破锁定,然后cleanup就会成功,之后再 ...

  9. “浪潮杯”第九届山东省ACM大学生程序设计竞赛(重现赛)E.sequence(树状数组求逆序对(划掉))

    传送门 E.sequence •题意 定义序列 p 中的 "good",只要 i 之前存在 pj < pi,那么,pi就是 "good": 求删除一个数, ...

  10. vue-learning:34 - component - 内置组件 - 动态组件component 和 is属性

    component动态组件 / is属性 让多个组件使用同一个挂载点,并动态切换,这就是动态组件. 必要条件: 组件标签使用<component></component> 动态 ...