POJ 3104 Drying 二分搜索
来源:互联网 发布:测试网络稳定性 编辑:程序博客网 时间:2024/06/10 09:13
题目链接:http://poj.org/problem?id=3104
(10^5)*(10^9) = 10^14,注意可能超int
当k为1的情况
一个小技巧,整数运算中,a/b的上取整可以用(a+b-1)/b
二分搜素,使用左开右闭区间,没什么多讲的
下面提供两个AC版本的代码,都是可以的
#include <cstdio>#include <iostream>#include <cstring>#include <algorithm>using namespace std;//typedef long long ll;int a[100005];int n, k;bool C(int d){ int cnt = 0; for(int i=0; i<n; i++){ if(a[i] > d){ cnt += (a[i]-d + k-2)/(k-1); //注意除数不能为0 if(cnt > d) return false; } } //if(cnt > d) return false; //else return true; return true;}int main(){ while(scanf("%d", &n) != EOF){ for(int i=0; i<n; i++) scanf("%d", &a[i]); sort(a, a+n); scanf("%d", &k); if(k == 1){ printf("%d\n", a[n-1]); continue; } int lb = 0, ub = a[n-1]; while(ub - lb > 1){ int mid = (lb+ub)/2; if(C(mid)) ub = mid; else lb = mid; } printf("%d\n", ub); } return 0;}
#include <cstdio>#include <iostream>#include <cstring>#include <algorithm>using namespace std;typedef long long ll;int a[100005];int n, k;bool C(int d){ ll cnt = 0; for(int i=0; i<n; i++){ if(a[i] > d){ cnt += (a[i]-d + k-2)/(k-1); //注意除数不能为0 //if(cnt > d) return false; } } if(cnt > d) return false; else return true; //return true;}int main(){ while(scanf("%d", &n) != EOF){ for(int i=0; i<n; i++) scanf("%d", &a[i]); sort(a, a+n); scanf("%d", &k); if(k == 1){ printf("%d\n", a[n-1]); continue; } int lb = 0, ub = a[n-1]; while(ub - lb > 1){ int mid = (lb+ub)/2; if(C(mid)) ub = mid; else lb = mid; } printf("%d\n", ub); } return 0;}
0 0
- POJ 3104 Drying 二分搜索
- POJ 3104 - Drying(二分搜索)
- poj 3104 Drying (二分搜索答案)
- POJ - 3104 Drying (二分搜索)
- POJ 3104 Drying (二分搜索)
- POJ 3104 Drying 二分
- POJ--3104--Drying【二分】
- POJ 3104 Drying 二分
- poj 3104 Drying (二分)
- POJ 3104 Drying (二分)
- POJ 3104 Drying (二分)
- POJ 3104- Drying-二分
- POJ 3104 Drying(二分)
- POJ - 3104 Drying(二分)
- POJ 3104 Drying【二分】
- POJ 3104 Drying(二分搜索,最大化最小值)
- poj 3104 Drying 二分搜索--查找最小yes值
- POJ 3104 Drying(二分枚举)
- 设计模式——策略模式
- SVN服务器搭建和SVN客户端安装及其…
- SVN服务器搭建和SVN客户端安装及其…
- SVN服务器搭建和SVN客户端安装及其…
- Java语言基础特性—第一部分(中)
- POJ 3104 Drying 二分搜索
- Velocity中文乱码解决
- quartz在服务器启动时,自动更新的…
- System.getProperties()方法获取的…
- 如何获取spring源代码
- myeclipse或eclipse生成javadoc时…
- servlet请求默认参数
- myeclipse项目打包发布时的目录问题
- sql 分组筛选 很强大