zoukankan      html  css  js  c++  java
  • POJ 2976 Dropping tests

    01 分数规划

    利用实数域下的二分答案来解

    #include <iostream>
    #include <cstdio>
    #include <cstring>
    #include <algorithm>
    #include <cmath>
    #define eps 1e-5
    using namespace std;
    int T, n, k;
    double a[1005], b[1005], l, r, mid, num[1005];
    bool chk(double x) {
    	for(int i = 1; i <= n; i++) num[i] = a[i] - x * b[i];
    	sort(num + 1, num + n + 1);
    	double ans = 0.0;
    	for(int i = n; i > k; i--) ans += num[i];
    	if(ans >= 0.0) return 1;
    	else return 0;
    }
    int main() {
    	while(1) {
    		cin >> n >> k;
    		if(!n && !k) break;
    		l = 0.0; r = 0.0;
    		for(int i = 1; i <= n; i++) {
    			cin >> a[i];
    			r += a[i];
    		}
    		for(int i = 1; i <= n; i++) cin >> b[i];
    		mid = (l + r) * 0.5;
    		while(r - l >= eps) {
    			mid = (l + r) * 0.5;
    			if(chk(mid)) {
    				l = mid;
    			}else r = mid;
    		}
    		printf("%.0f
    ", mid * 100);
    	}
    	return 0;
    }
    
  • 相关阅读:
    雑談
    safari下无法模拟click()的解决方法 ------转载
    用户操作
    居中
    replace 重写
    JS数组添加元素的三种方式
    Asp.Net Core 包
    CSS3 动画 可以参考
    CSS3 动画
    完全居中
  • 原文地址:https://www.cnblogs.com/Mr-WolframsMgcBox/p/8646373.html
Copyright © 2011-2022 走看看