• 01分数规划


    OI分数规划

    首先,单纯的贪心是错误的(废话)

    除了常见的二分之外还有一种调整法,不会.....

    板题:POJ2976 Dropping tests

     1 #include <cstdio>
     2 #include <algorithm>
     3 
     4 typedef long long LL;
     5 const int N = 1010;
     6 const double INF = 1e11;
     7 
     8 struct Node {
     9     double a, b, c;
    10     inline bool operator <(const Node &w) const {
    11         return c < w.c;
    12     }
    13 }node[N];
    14 
    15 int n, k;
    16 
    17 inline bool check(double D) {
    18     for(int i = 1; i <= n; i++) {
    19         node[i].c = node[i].a - node[i].b * D;
    20     }
    21     std::sort(node + 1, node + n + 1);
    22     //printf("k = %d 
    ", k);
    23     double ans = 0;
    24     for(int i = 1; i <= k; i++) {
    25         ans += node[n + 1 - i].c;
    26     }
    27     return ans >= 0;
    28 }
    29 
    30 inline void solve() {
    31     k = n - k;
    32     double l = INF, r = -INF;
    33     for(int i = 1; i <= n; i++) {
    34         scanf("%lf", &node[i].a);
    35     }
    36     for(int i = 1; i <= n; i++) {
    37         scanf("%lf", &node[i].b);
    38         double temp = node[i].a / node[i].b;
    39         l = std::min(l, temp);
    40         r = std::max(r, temp);
    41     }
    42 
    43     for(int i = 1; i <= 50; i++) {
    44         double mid = (l + r) / 2;
    45         if(check(mid)) {
    46             l = mid;
    47         }
    48         else {
    49             r = mid;
    50         }
    51     }
    52     printf("%lld
    ", (LL)(r * 100 + 0.5));
    53     return;
    54 }
    55 
    56 int main() {
    57     while(scanf("%d%d", &n, &k)) {
    58         if(!n && !k) break;
    59         solve();
    60     }
    61 
    62     return 0;
    63 }
    AC代码
  • 相关阅读:
    call()与apply()的作用与区别
    Tomcat8/9的catalina.out中文乱码问题解决
    怎样查看Jenkins的版本
    每日日报2020.8.18
    528. Random Pick with Weight
    875. Koko Eating Bananas
    721. Accounts Merge
    515. Find Largest Value in Each Tree Row
    286. Walls and Gates (Solution 1)
    408. Valid Word Abbreviation
  • 原文地址:https://www.cnblogs.com/huyufeifei/p/10450738.html
Copyright © 2020-2023  润新知