本是POJ2976,喜闻乐见的01规划入门题。POJ日常假死,到ZOJ测。

二分答案。

试了试数据好像没问题,\(a_i\)总是小于\(b_i\)且最终预答案l都小于1。然而为什么我把r设成1e10往上就会WA,设成1或者1e3会AC,设成1e2会WA……而且网上题解基本都会被全0的数据hack啊……求解答

#include <cstdio>
#include <cctype>
#include <algorithm>
#define mset(a, b) memset(a, b, sizeof(a))
#define rep(i, a, b) for (int i = a; i <= b; i++)
#define per(i, a, b) for (int i = a; i >= b; i--)
#define fg cout << "--------------\n";
#define debug(x) std::cerr << #x << " = " << x << std::endl
#define All(x) (x.begin()), (x.end())
using namespace std; typedef double db;
typedef long long ll;
typedef unsigned long long ull;
typedef pair<int, int> pii;
typedef pair<ll, ll> pll;
const int inf = 0x3f3f3f3f;
const ll INF = 1e18; template <typename T> void read(T &x) {
x = 0;
int s = 1, c = getchar();
for (; !isdigit(c); c = getchar())
if (c == '-') s = -1;
for (; isdigit(c); c = getchar())
x = x * 10 + c - 48;
x *= s;
} template <typename T> void write(T x) {
if (x < 0) x = -x, putchar('-');
if (x > 9) write(x / 10);
putchar(x % 10 + '0');
} template <typename T> void writeln(T x) {
write(x);
puts("");
} const int maxn = 1e3 + 5;
const db eps = 1e-4;
int n, k;
db a[maxn], b[maxn], c[maxn]; bool not_ok(db mid) {
db res = 0;
rep(i, 1, n) c[i] = a[i] - b[i] * mid, res += c[i];
sort(c + 1, c + 1 + n);
rep(i, 1, k) res -= c[i];
return res < 0;
} int main() {
while (~scanf("%d %d", &n, &k) && (n | k)) {
db x = 0;
rep(i, 1, n) read(a[i]), x += a[i];
rep(i, 1, n) read(b[i]);
if (x == 0.0) {
puts("0"); continue;
}
db l = 0, r = 1;
while (r - l > eps) {
db mid = (l + r) / 2.0;
if (not_ok(mid)) r = mid;
else l = mid;
}
printf("%.0lf\n", l * 100.0);
}
return 0;
}

最新文章

  1. Django基础
  2. C++的隐式类型转换与转换操作符
  3. Android学习笔记——ProgressBar
  4. ueditor .net版本上传不了图片问题
  5. UI学习笔记---第十六天XML JSON解析
  6. word2010 ctrl v not work
  7. C#操作MySQL数据库-----HelloWorld
  8. linux运维常用命令集
  9. js遍历 for-of
  10. C#中try catch finally 用法
  11. ajaxFileUpload上传带参数,返回值改成json格式
  12. JavaScript大杂烩3 - 理解JavaScript对象的封装性
  13. ES6中新增的数组知识
  14. TP5+jquery即点既改
  15. f5故障排除
  16. PARSEC安环境配置、运行
  17. 图标框架Font Awesome
  18. Mapreduce部署与第三方依赖包管理
  19. virsh 操作kvm虚拟机
  20. [leetcode]253. Meeting Rooms II 会议室II

热门文章

  1. 运行程序显示:Could not find version 8.3 of the MCR.
  2. JS jquery ajax 已看1 有用
  3. Spring IOC容器解析及实现原理
  4. (转)Linux网络协议栈(三)——网络设备(1)
  5. Linux uname命令
  6. java中静态方法和非静态方法调用的一点小困扰,已解决。
  7. SpringMVC执行流程(四)
  8. 【Arcgis android】 离线编辑实现及一些代码段
  9. 《Linux内核设计与实现》读书笔记(七)- 中断处理
  10. SharpCompress压缩和解压缩,并解决压缩的中文乱码问题