博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[poj 2976] Dropping tests (分数规划 二分)
阅读量:5302 次
发布时间:2019-06-14

本文共 1010 字,大约阅读时间需要 3 分钟。

原题:

题意:
给出n个a和b,让选出n-k个使得(sigma a[i])/(sigma b[i])最大

直接用分数规划。。

code:

//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

你可能感兴趣的文章
C语言中求最大最小值的库函数
查看>>
和小哥哥一起刷洛谷(1)
查看>>
jquery对id中含有特殊字符的转义处理
查看>>
遇麻烦,Win7+Ubuntu12.10+Archlinux12.10 +grub
查看>>
SqlBulkCopy大批量导入数据
查看>>
pandas 修改指定列中所有内容
查看>>
「 Luogu P2285 」打鼹鼠
查看>>
lua语言入门之Sublime Text设置lua的Build System
查看>>
vue.js基础
查看>>
电脑的自带图标的显示
查看>>
[转载] redis 的两种持久化方式及原理
查看>>
C++ 删除字符串的两种实现方式
查看>>
ORA-01502: 索引'P_ABCD.PK_WEB_BASE'或这类索引的分区处于不可用状态
查看>>
Java抽象类和接口的比较
查看>>
开发进度一
查看>>
MyBaits学习
查看>>
管道,数据共享,进程池
查看>>
CSS
查看>>
[LeetCode] 55. Jump Game_ Medium tag: Dynamic Programming
查看>>
[Cypress] Stub a Post Request for Successful Form Submission with Cypress
查看>>