本文共 1010 字,大约阅读时间需要 3 分钟。
原题:
直接用分数规划。。
//By Menteur_Hxy#include #include #include #include #include #include #define M(a,b) memset(a,(b),sizeof(a))#define F(i,a,b) for(register int i=(a);i<=(b);i++)#define LL long longusing namespace std;inline LL rd() { LL x=0,fla=1; char c=' '; while(c>'9'|| c<'0') {if(c=='-') fla=-fla; c=getchar();} while(c<='9' && c>='0') x=x*10+c-'0',c=getchar(); return x*fla;}const int N=1010;const int INF=0x3f3f3f3f;int n,k;int a[N],b[N];double t[N];double jud(double L) { double sum=0.0; F(i,1,n) t[i]=a[i]-L*b[i]; sort(t+1,t+1+n); F(i,k+1,n) sum+=t[i]; return sum;}int main() { while(scanf("%d %d",&n,&k),n||k) { F(i,1,n) a[i]=rd(); F(i,1,n) b[i]=rd(); double l=0.0,r=1.0; while(r-l>1e-7) { double mid=(l+r)/2; if(jud(mid)>0) l=mid; else r=mid; } printf("%.0f\n",l*100); } return 0;}
版权声明:本文为原创文章,未经博主允许不得转载。
转载于:https://www.cnblogs.com/Menteur-Hxy/p/9105145.html