POJ 3111 K Best (最大化平均值,贪心 二分)难度⭐⭐⭐
题目来源:
【题意】
有n个物品的重量和价值分别是wi,vi,从中选取k个物品使得单位重量的价值最大。
输出格式:
输出一行物品的编号。
#include<iostream>
#include<stdio.h>
#include<algorithm>
#define ls (p<<1)
#define rs (p<<1|1)
#define mid (l+r)/2
using namespace std;
typedef long long ll;
const ll N=1e5+7;
const double mod=2147483647.0;
const double EPS=1e-6;
ll n,k;
double f[N];
#undef mid
struct node
{double v,w,av;ll id;bool operator<(const node &t)const{return av>t.av;}
}arr[N];
inline bool check(double x)
{for(int i=1;i<=n;++i)arr[i].av=arr[i].v-arr[i].w*x;sort(arr+1,arr+1+n);double sum=0;for(int i=1;i<=k;++i)sum+=arr[i].av;return sum>=0;
}
void solve()
{double l=0,r=mod;while(l+EPS<=r){double mid=(l+r)/2;if(check(mid))l=mid;else r=mid;}
}
int main()
{while(~scanf("%lld %lld",&n,&k)){for(ll i=1;i<=n;++i){scanf("%lf %lf",&arr[i].v,&arr[i].w);arr[i].id=i;}solve();for(ll i=1;i<=k;++i)printf("%lld%s",arr[i].id,i==k?"\n":" ");}return 0;
}
有任何疑问欢迎评论哦虽然我真的很菜
点个关注再走吧
POJ 3111 K Best (最大化平均值,贪心 二分)难度⭐⭐⭐相关推荐
- K BEST(最大化平均值)
K BEST(最大化平均值) Demy has n jewels. Each of her jewels has some value vi and weight wi.Since her husba ...
- POJ 3111 K Best 贪心 二分
题目链接: http://poj.org/problem?id=3111 题目描述: 在N个物品中让你选出K个, 使得平均价值最大 解题思路: 这是我错的代码......一会儿回来改啊......一会 ...
- 最大化平均值 (二分搜索法)
题目描述: 有n个物品的重量和价值分别为Wi和Vi.从中选出k个物品使得单位重量的价值最大. 例如: n=3 k=2 (w,v)={(2,2) , (5,3) , (2,1) } 输出应为0.75 分 ...
- nyoj-976-Youth的最大化(贪心+二分)
本题为01分数规划 同类题型poj-2976 #include<stdio.h> #include<string.h> #include<algorithm> us ...
- POJ 2976 Dropping tests【二分 最大化平均值】
题意:定义最大平均分为 (a1+a2+a3+---+an)/(b1+b2+---+bn),求任意去除k场考试的最大平均成绩 和挑战程序设计上面的最大化平均值的例子一样 判断是否存在x满足条件 (a1+ ...
- Divide and conquer:K Best(POJ 3111)
挑选最美的珠宝 题目大意:挑选k个珠宝使得∑a/∑b最大,输出组合数 最大化平均值的标准题型,二分法就好了,一定要注意范围(10e-7),如果是10e-8就会tle,10e-6就是wa 1 #inc ...
- [SCOI2005]栅栏(贪心+二分+dfs)难度⭐⭐⭐⭐
[SCOI2005]栅栏(贪心+二分+dfs) P2329 [SCOI2005]栅栏 题目描述 农夫约翰打算建立一个栅栏将他的牧场给围起来,因此他需要一些特定规格的木材.于是农夫约翰到木材店购买木材. ...
- 贪心/二分查找 BestCoder Round #43 1002 pog loves szh II
题目传送门 1 /* 2 贪心/二分查找:首先对ai%=p,然后sort,这样的话就有序能使用二分查找.贪心的思想是每次找到一个aj使得和为p-1(如果有的话) 3 当然有可能两个数和超过p,那么an ...
- LIS最长上升子序列详解(动态规划、贪心+二分、树状数组)
1.摘要: 关于LIS部分,本篇博客讲一下LIS的概念定义和理解,以及求LIS的三种方法,分别是O(n^2)的DP,O(nlogn)的二分+贪心法,以及O(nlogn)的树状数组优化的DP,最后附上几 ...
最新文章
- redis mysql 集群_mysql_redis
- 牛X!Github项目中文榜,你想知道不想知道的都有!
- bmp和png读取速率和处理速率比较
- [译]React Component最佳实践
- 15 redis-分布式锁
- 走进 Facebook POP 的世界
- linux下ls出现文件的后缀有@,* ,/之类的解释
- 【nacos系列】nacos配置中心管理实战
- 度度熊的01世界 DFS
- python struct pack string_python struct pack fmt格式
- Windows8 Metro应用开发之C#(3)- 数据控件ListView、GridView、FlipView
- visio中绘制空间坐标系
- 打开计算机系统无法访问指定的,win10系统运行软件时提示“无法访问指定设备路径或文件的修复步骤...
- UPC-9558 区间权值
- 矩阵计算在计算机科学中,开发者必读:计算机科学中的线性代数
- wifipineapple外接网卡上网
- 【C++】【整活】鼠标抖动
- 计算机键盘时好时坏,电脑鼠标时好时坏的解决方法
- 从零编写一个解析器(1)—— 解析数字
- 考研350什么水平计算机,考研350分的难度相当于高考考什么水平?很多人都不知道...