博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
P2440 木材加工(二分+贪心)
阅读量:6823 次
发布时间:2019-06-26

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

思路:这里就要看往那边贪心了,因为解决的是最大值最小化,最小值最大化。也就是说当满足大于等于c时,l=mid+1这样的二分得到的就是在所有满足条件函数下的最右端.

 

#include
#include
using namespace std;#define ll long longconst int maxn = 1e5 + 10;int a[maxn], n, maxx, ans;ll c, mid;bool check(ll x){ ll sum = 0; for (int i = 1; i <= n; ++i) sum += a[i] / x; return sum >= c;}void half(){ ll l = 1, r = maxx; while (l <= r){ mid = (r + l) >> 1; if (check(mid)){ l = mid + 1; } else r = mid - 1; } ans = r;}int main(){ cin >> n >> c; for (int i = 1; i <= n; ++i) { cin >> a[i]; maxx = max(maxx, a[i]); } half(); //二分 cout << ans << endl;}

 

转载于:https://www.cnblogs.com/ALINGMAOMAO/p/10453827.html

你可能感兴趣的文章
Ribbon重试机制与Hystrix熔断机制的配置问题1
查看>>
CGI与FastCGI
查看>>
字符串查找算法的改进-hash查找算法
查看>>
c#实现远程图片下载
查看>>
史丹·温斯坦称傲牛熊市的秘密_百度百科
查看>>
SendMessage函数完全使用手册 转
查看>>
3GPP与3GPP2扫盲
查看>>
Android fragments loader
查看>>
淘宝下单高并发解决方案
查看>>
马尔科夫链算法
查看>>
JS框架
查看>>
hdu 1394
查看>>
【Cocos2D-X 】初窥门径(10)解决中文乱码
查看>>
LetterView实现载入全国各地城市
查看>>
设计模式——工厂方法
查看>>
算法训练 关联矩阵
查看>>
Git-随笔
查看>>
CSS系列:在HTML中引入CSS的方法
查看>>
GridView编辑删除操作
查看>>
【转】为什么我们喜欢把火撒在亲人身上
查看>>