博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[CodeForces954G]Castle Defense(二分答案+差分)
阅读量:6824 次
发布时间:2019-06-26

本文共 996 字,大约阅读时间需要 3 分钟。

Description

Solution

二分答案,套一个差分标记即可

每次放弓箭手显然越右边越优

Code

#include 
#include
#include
#define N 2000010#define ll long longusing namespace std;int n,R;ll A[N],k,Ans,l=1e18,r=1e20,cf[N],sum[N];inline ll read(){ ll x=0,f=1;char ch=getchar(); while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();} while(ch>='0'&&ch<='9'){x=x*10+ch-'0';ch=getchar();} return x*f;}bool check(ll m){ ll tmp=k,x=0; memset(cf,0,sizeof(cf)); for(int i=1;i<=n;++i){ x+=cf[i]; if(sum[min(i+R,n)]-sum[max(i-R-1,0)]+x
tmp) return 0; tmp-=d; x+=d; cf[i+2*R+1]-=d; } } return 1;}int main(){ scanf("%d%d%I64d\n",&n,&R,&k); for(int i=1;i<=n;++i){sum[i]=sum[i-1]+(A[i]=read());l=min(l,A[i]);} while(l
>1ll; if(check(m)) Ans=m,l=m+1; else r=m; } printf("%I64d\n",Ans); return 0;}

转载于:https://www.cnblogs.com/void-f/p/8630129.html

你可能感兴趣的文章
ZeroMQ接口函数之 :zmq_tcp – 使用TCP协议的ØMQ网络单播协议
查看>>
Silverlight TabItem选中,未选中样式设置
查看>>
PAT 1002 Hello World for U (20)
查看>>
[华为机试练习题]55.最大公约数 &amp; 多个数的最大公约数
查看>>
文章标题
查看>>
对js原型对象的拓展和原型对象的重指向的区别的研究
查看>>
将数值四舍五入后格式化,带有千分位
查看>>
Atitit.反编译apk android源码以及防止反编译apk
查看>>
EF增删改查操作
查看>>
更改文件和目录的所有者
查看>>
[Angularjs]表单验证
查看>>
jquery------使用jQuery的委托方法
查看>>
Bmob后端云使用步骤
查看>>
ASP.NET Core 中间件详解及项目实战
查看>>
Android中的Uri.parse()
查看>>
安装 Express
查看>>
博客模板
查看>>
iOS开发之都兴忱小结
查看>>
TableLayout(表格布局)
查看>>
PAT1007
查看>>