分数规划学习、
来源:互联网 发布:mac nice to meet you 编辑:程序博客网 时间:2024/05/29 12:36
学习博客:传送门
POJ 2976模板题、
#include <cstdio>#include <cstring>#include <cmath>#include <sstream>#include <iostream>#include <algorithm>#include <string>#include <stack>#include <queue>#include <vector>#include <map>#include <set>#include <utility>using namespace std;#define LL long long#define pb push_back#define mk make_pair#define pill pair<int, int>#define ft first#define sd second#define mst(a, b)memset(a, b, sizeof a)#define REP(i, x, n)for(int i = x; i <= n; ++i)const int qq = 1000 + 10;const int MOD = 1e9 + 7;const int INF = 1e9 + 10;const double eps = 1e-7;double a[qq], b[qq];double d[qq];int n, k;double Check(double L) {double sum = 0;for(int i = 0; i < n; ++i) {d[i] = a[i] - b[i] * L;}sort(d, d + n);for(int i = k; i < n; ++i) {sum += d[i];}return sum;}int main(){while(scanf("%d%d", &n, &k) != EOF) {if(!n && !k)break;for(int i = 0; i < n; ++i) {scanf("%lf", a + i);}double l = INF, r = -INF;for(int i = 0; i < n; ++i) {scanf("%lf", b + i);l = min(l, a[i] * 1.0 / b[i]);r = max(r, a[i] * 1.0 / b[i]);}double ans = l;while(r - l > eps) {double mid = (l + r) / 2.;if(Check(mid) > 0) {ans = mid;l = mid;} else {r = mid;}}printf("%.0f\n", ans * 100.);}return 0;}
阅读全文
0 0
- 分数规划学习、
- 分数规划
- 分数规划
- 分数规划
- 分数规划
- 分数规划
- 关于分数规划
- [Algorithm]01分数规划
- 01分数规划
- poj 2976 分数规划
- 0-1分数规划
- 总结01分数规划
- 01分数规划
- POJ3757 01分数规划
- 01分数规划
- 01分数规划问题
- 01分数规划
- 01分数规划
- 程序自动生成地图
- 浅谈工程师的调试法宝(三)---SWO引脚的巧妙应用
- cordova 打包android报错
- 几种HTTP url应用
- java 字符串理解
- 分数规划学习、
- POJ 2823 Sliding Window/单调队列
- oracle中关于count(1)、count(*)、count(rowid)、count(某个字段)使用上的区别和性能问题
- Android Tinker的两种接入方式
- 磁盘I/O性能优化--磁盘阵列
- ThinkPHP5 行为和钩子
- MySQL基础学习
- JDBC模板
- hdu 1435 Stable Match (稳定匹配)