博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
洛谷 1873 砍树
阅读量:4953 次
发布时间:2019-06-12

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

【题解】

  二分答案即可。

  注意树的总高度会超过int,所以尽管M不超过int,check的时候还是要开Long Long,避免不必要的麻烦。

  

1 #include
2 #include
3 #include
4 #include
5 #define LL long long 6 #define rg register 7 #define N 1000010 8 using namespace std; 9 LL n,m,l,r,mid,a[N];10 inline LL read(){11 LL k=0,f=1; char c=getchar();12 while(c<'0'||c>'9')c=='-'&&(f=-1),c=getchar();13 while('0'<=c&&c<='9')k=k*10+c-'0',c=getchar();14 return k*f;15 }16 inline LL max(LL a,LL b){
return a>b?a:b;}17 inline bool check(){18 LL sum=0;19 for(rg int i=1;i<=n;i++) sum+=max(0,a[i]-mid);20 return sum>=m; 21 }22 int main(){23 n=read(); m=read();24 for(rg int i=1;i<=n;i++) a[i]=read(),r=max(r,a[i]);25 while(l+1
>1;27 if(check()) l=mid;28 else r=mid;29 }30 printf("%lld\n",l);31 return 0;32 }
View Code

 

转载于:https://www.cnblogs.com/DriverLao/p/9296116.html

你可能感兴趣的文章
C# 复制指定节点的所有子孙节点到新建的节点下
查看>>
Leetcode: Search Insert Position
查看>>
如何打开jsp页面时经过action从数据库取得数据显示在页面上
查看>>
js31---观察者模式
查看>>
vue2.0-elementUI
查看>>
Vitamin K2 with Menaquinone-7 60 Vegetarian Capsules
查看>>
Docker (三):镜像
查看>>
AngularJs的表单验证
查看>>
SpringBoot:四种读取properties文件的方式
查看>>
Sql视图
查看>>
async, await运用
查看>>
go语言hello.go
查看>>
分布式服务框架 Zookeeper -- 管理分布式环境中的数据
查看>>
JavaScript数组去重6种方法
查看>>
asp.net core 系列之中间件进阶篇-编写自定义中间件(middleware)
查看>>
poj1269 Intersecting Lines
查看>>
快速使用Log4Cpp
查看>>
vimrc
查看>>
Javascript模块化编程的写法
查看>>
大华门禁SDK二次开发(二)-SignalR应用
查看>>