zoukankan      html  css  js  c++  java
  • POJ2976 Dropping tests

     摘自大佬博客:

    https://blog.csdn.net/hzoi_ztx/article/details/54898323

    给出n组ai和bi,去掉k个使得a的总和除以b的总和最大

    01分数规划问题

    把这个看成一次函数
    y=B-A*x
    对于每组{xi}都对应一条直线,如图

    而函数解为直线与x轴焦点,且最优解离原点最远。
    这时,可以考虑二分,随意悬垂一条直线,如果与直线焦点在x轴上方,那么就是取小了,反之取大了,如果正好在x轴上,那就是这个解。

    double check(double x){
    For(i,1,n)t[i]=a[i]-b[i]*x;
    sort(t+1,t+1+n);
    FFor(i,n,m+1)ans+=t[i];
    return ans;
    }
    mi=min(b[i]),mx=max(a[i]);
    l=0,r=mx/mi;
    while(r-l>eps){
    if(check(mid)>0)l=mid;
    else r=mid;
    }
    printf("%.0f",mid*100);
  • 相关阅读:
    cf Round 633
    Django学习手册
    Django学习手册
    Django学习手册
    Django学习手册
    Django学习手册
    Django学习手册
    ERROR CL .exe……错误
    DLL、lib等链接库文件的使用
    HTTP协议
  • 原文地址:https://www.cnblogs.com/planche/p/9410968.html
Copyright © 2011-2022 走看看