Dropping tests
题意:给数组a和b, 选择其中的k个使得sigma(a[i])/sigma(b[i])最大。
F(L):=sigma(a[i]*x[i])-L*sigma(b[i]*x[i]),
题解链接:
1 #include2 #include 3 #include 4 using namespace std; 5 const int maxn=1010; 6 double a[maxn],b[maxn],d[maxn]; 7 int n,k; 8 bool check(double x) 9 {10 double ans=0;11 for(int i=0;i 0;17 }18 19 int main()20 {21 while(scanf("%d%d",&n,&k)&&(n||k))22 {23 for(int i=0;i 1e-7)29 {30 mid=(l+r)*1.0/2;31 if(check(mid)) l=mid;32 else r=mid;33 }34 printf("%.0f\n",mid*100);35 }36 }