POJ 2976 裸的01分数规划
2024-08-31 02:37:55
题意:给你n个数对(认为是a数组和b数组吧),从中取n-m个数对,如果选第i个数对,定义x[i]=1,求R=∑(a[i]*x[i])/∑(b[i]*x[i])取得最大值时R的值。输出R*100(保留到整数)
输入:第一行 n,m。第二行 a数组的值,第三行b数组的值。以n=m=0结束。
原题:
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <iostream>
using namespace std;
int n,m,a[10005],b[10005];
double c[10005];
bool cmp(int a,int b)
{
return a>b;
}
bool judge(double k)
{
for(int i=1;i<=n;i++)
{
c[i]=a[i]-b[i]*k;
}
sort(c+1,c+1+n,cmp);
double sum=0.0;
for(int i=1;i<=m;i++)
{
sum+=c[i];
}
return sum>=0.0;
}
int main()
{
while(scanf("%d%d",&n,&m)&&(n||m))
{
double left=0,right=0x3fffffff;
m=n-m;
for(int i=1;i<=n;i++)
{
scanf("%d",&a[i]);
}
for(int i=1;i<=n;i++)
{
scanf("%d",&b[i]);
}
for(int i=1;i<=100;i++)
{
double mid=(left+right)/2.0;
if(judge(mid))
{
left=mid;
}
else
right=mid;
}
left=left*100;
printf("%.0f\n",left);
}
}
最新文章
- PHP变量作用域
- JQuery Easy Ui dataGrid 数据表格
- 关联规则之Aprior算法(购物篮分析)
- Follow me to learn what is Unit of Work pattern
- jQuery Devrama Slider 幻灯片
- NEERC 2013, Eastern subregional contest
- android chrome 不支持 audio/video的autoplay 属性
- Module模式 - 深入了解Javascript
- mmap和普通文件读写的区别和比较 &; mmap的注意点
- DTrace to Troubleshoot Java Native Memory Problems
- 初学HTML5系列二:HTML5新增的事件属性
- Adb工具常用操作(一)
- JS高级程序设计学习笔记之JS事件(1)
- C++ 11学习(1):lambda表达式
- 使用vee-validate表单插件是如何设置中文提示?
- RAID技术详解
- C# 链表去重 List 一维 二维 分别使用 Distinct() GroupBy() 方法
- Java之文本文件的创建和读取(含IO流操作)
- [20170828]grep过滤技巧.txt
- python全栈开发day33-进程间的通信、进程间的数据共享,进程池