poj 2976-Dropping tests解题报告
2012-05-07 22:56
501 查看
链接:http://poj.org/problem?id=2976
01分数规划,有一个序列ai,和一个序列bi,从中取出下标相等的m个数,使得∑a[i]/∑b[i]最大,刚开始用dp做的,TLE了,看了别人的题解,二分
View Code
01分数规划,有一个序列ai,和一个序列bi,从中取出下标相等的m个数,使得∑a[i]/∑b[i]最大,刚开始用dp做的,TLE了,看了别人的题解,二分
View Code
#include<stdio.h> #include<math.h> #include<stdlib.h> #define N 1005 #define eps 1e-2 double a ,b ; double val ; int cmp(const void *a,const void *b) { double c=*(double *)a; double d=*(double *)b; if(c>d) return -1; return 1; } int main() { int n,k,i,j; double low,high,sum,mid; while(scanf("%d%d",&n,&k)&&(n||k)) { low=0,high=100; for(i=0;i<n;i++) scanf("%lf",&a[i]); for(i=0;i<n;i++) scanf("%lf",&b[i]); while(fabs(high-low)>eps) { sum=0; mid=(low+high)/2.0; for(i=0;i<n;i++) val[i]=a[i]*100-mid*b[i];//这里有些不懂啊,唉 qsort(val,n,sizeof(double),cmp); for(i=0;i<n-k;i++) sum+=val[i]; if(sum>0) low=mid; else high=mid; } printf("%.0lf\n",mid); } return 0; }
相关文章推荐
- POJ 2976 Dropping tests
- POJ-2976 Dropping tests
- poj解题报告——2976
- POJ 2976 -- Dropping tests
- F - Dropping tests POJ - 2976(二分)
- POJ 2976 Dropping tests 解题报告(二分)
- POJ-2976-Dropping tests
- 【POJ 2976】Dropping tests&01分数规划详解
- POJ 2976:Dropping tests 01 分数规划
- (2017.8.5周赛2) A - Dropping tests POJ - 2976(01数分规划)
- POJ 2976 Dropping tests——最大化平均值
- Poj 2976 Dropping tests
- POJ 2976 Dropping tests
- POJ 2976 Dropping tests
- POJ 2976 Dropping tests & 分数规划讲解
- POJ 2976 ALL in ALL 解题报告
- POJ-2976:Dropping tests【01分数规划】
- 【POJ】2976 - Dropping tests 二分->最大化平均值
- POJ1007解题报告
- poj1742 Coins 解题报告