zoukankan      html  css  js  c++  java
  • 01分数规划

    (frac{sum_{i=1}^N a_ix_i}{sum_{i=1}^Nb_ix_i}=ans)

    (sum_{i=1}^N a_ix_i-anssum_{i=1}^N b_ix_i=0)

    二分答案ans即可

    #include"cstdio"
    #include"cstring"
    #include"iostream"
    #include"algorithm"
    using namespace std;
    
    const int MAXN=1e5+5;
    const double eps=1e-8;
    
    int n,K;
    double l=1e6+5,r,mid;
    struct rpg{
    	int a,b;
    }a[MAXN];
    
    bool cmp(rpg a,rpg b){return a.a-a.b*mid>b.a-b.b*mid;}
    
    bool check()
    {
    	sort(a+1,a+n+1,cmp);
    	double sum=0;
    	int ct=1;
    	while(sum+eps>0&&ct<=n){
    		sum+=a[ct].a-a[ct].b*mid;
    		++ct;
    	}if(sum+eps<0) --ct;
    	--ct;
    	return ct>=K;
    }
    
    int main()
    {
    	scanf("%d%d",&n,&K);
    	for(int i=1;i<=n;++i) scanf("%d",&a[i].a);
    	for(int i=1;i<=n;++i) scanf("%d",&a[i].b),l=min(l,(double)a[i].a/a[i].b),r=max(r,(double)a[i].a/a[i].b);
    	while(r-l>eps){
    		mid=(l+r)/2;
    		if(check()) l=mid;
    		else r=mid;
    	}printf("%.4lf
    ",l);
    	return 0;
    }
    
  • 相关阅读:
    Django路由控制
    Django杂录
    JQuery
    php-高级计算器
    单项链表
    php解决约瑟夫环
    开灯算法问题
    PHP经典算法之背包问题
    归并排序
    php踩过的那些坑(5)浮点数计算
  • 原文地址:https://www.cnblogs.com/AH2002/p/10044224.html
Copyright © 2011-2022 走看看