zoukankan      html  css  js  c++  java
  • POJ 2976

    http://poj.org/problem?id=2976

    01分数规划问题,可以舍掉k组

    01分数规划用于解决的经典问题是最优比率生成树

    解法见http://www.cnblogs.com/lotus3x/archive/2009/03/21/1418480.html

    #include <iostream> 
    #include <cstdio>
    #include <algorithm>
    
    using namespace std;
    
    double eps = 1e-8;
    
    double b[1005], c[1005], d[1005];
    
    int main() {
        int n, k;
        while(~scanf("%d%d", &n, &k)) {
            if(!n && !k) break;
            for(int i = 0; i < n; i++)
                scanf("%lf", &b[i]);
            for(int i = 0; i < n; i++)
                scanf("%lf", &c[i]);
            double L = 0.0;
            double R = 1.0;
            double mid;
            while(R - L > eps) {
                mid = (L + R) / 2;
                for(int i = 0; i < n; i++)
                    d[i] = b[i] - mid * c[i];
                double z = 0.0;
                sort(d, d + n);
                for(int i = k; i < n; i++)
                    z += d[i];
                if(z > eps) L = mid;
                else R = mid;
            }
            printf("%d
    ", (int)(mid*100+0.5));
        }
        return 0; 
    }
    View Code
  • 相关阅读:
    CoreLocation
    通知(NSNotificationCenter)
    加载xib文件
    UITextField
    UIButton
    UILabel
    UIAlertController
    layoutSubviews
    Java AQS详解(转)
    Java中synchronized
  • 原文地址:https://www.cnblogs.com/xiaohongmao/p/4586842.html
Copyright © 2011-2022 走看看