POJ3111-K Best
来源:互联网 发布:php header用法 编辑:程序博客网 时间:2024/05/22 02:21
这道题与POJ2976类似,但是数据量貌似很大....
二分最大化平均值
#include <cstdio>#include <algorithm>#include <vector>using namespace std;const int maxn = 100000;const int inf = 10e6;int v[maxn];int w[maxn];struct rec { double y; int id;} r[maxn];vector<int> vec;bool comp(const rec& r1, const rec& r2) { return r1.y > r2.y;}bool judge(double x, int n, int k) { vec.clear(); for (int i = 0; i < n; i++) { r[i].y = v[i] - x * w[i]; r[i].id = i + 1; } sort(r, r + n, comp); double sum = 0; for (int i = 0; i < k; i++) { sum += r[i].y; vec.push_back(r[i].id); } return sum >= 0;}int main(int argc, char const *argv[]) { int n, k; scanf("%d%d", &n, &k); for (int i = 0; i < n; i++) { scanf("%d%d", &v[i], &w[i]); } double lb = 0; double ub = inf; //50的精度已经够了,100就会超时... for (int i = 0; i < 50; i++) { double mid = (lb + ub) / 2; if (judge(mid, n, k)) { lb = mid; } else { ub = mid; } } for (int i = 0; i < vec.size(); i++) { if (i) putchar(' '); printf("%d", vec[i]); } putchar('\n'); return 0;}
0 0
- POJ3111--K Best
- poj3111 K Best
- POJ3111-K Best
- POJ3111 K Best
- POJ3111-K Best
- K Best poj3111
- poj3111-K Best
- POJ3111 K Best 二分搜索
- POJ3111-K Best-最大化平均值
- poj3111 K Best【最大化平均值】
- POJ3111 K Best 最大化平均值(二分)
- POJ3111 K Best(二分 最大化平均值)
- 求改poj3111 K Best二分
- poj3111- POJ - 3111 K Best (二分 + 01分数规划)
- poj3111
- poj3111
- poj3111
- POJ3111
- JQuery面试题1
- Codeforces Round #218 (Div. 2) C. Hamburgers【二分】
- mark工作一周年
- Andorid之MediaPlayer和AudioTrack播放Audio的区别与联系
- JQuery面试题2
- POJ3111-K Best
- baseAdapter
- 数据结构与算法概述
- errno、stderr、perror函数和strerror函数
- Android UI组件--ListView(1)
- register,static,extern,const,typedef,volatile关键字
- 计蒜客的一道题dfs
- poj1815Friendship【最小割】
- 互联网协议入门