POJ 3111 K Best(最大化平均值)

简介:
题目链接 click here~~

题目大意】有n个物品的重量和价值各自是Wi和Vi。从中选出K个物品使得单位重量的价值最大,输出物品的编号

解题思路】:最大化平均值的经典.參见click here~~

代码:

//#include 
#include 
#include 
#include 
#include 
#include 
using namespace std;
const int N=1e5+10;
const double eps=1e-8;
int n,k,m;
struct node
{
    double y,v,w;//价值。重量
    int id;
}pp[N];
bool cmp(node a,node b)
{
    return a.y>b.y;
}
bool get(double mid)//能够选择使得单位重量的价值不小于mid
{
    bool pk;
    for(int i=0; i=0) pk=true;
    else pk=false;
    return pk;
}
int main()
{
    //freopen("1.txt","r",stdin);
    scanf("%d%d",&n,&k);
    for(int i=0; ieps)
    {
        double mid=(ll+rr)/2;
        if(get(mid)) ll=mid;
        else rr=mid;
    }
    //printf("%.2f\n",rr);
    printf("%d",pp[0].id);
    for(int i=1;i




本文转自mfrbuaa博客园博客,原文链接:http://www.cnblogs.com/mfrbuaa/p/5208042.html,如需转载请自行联系原作者
相关文章
如何修改springboot项目启动时的默认图标?
如何修改springboot项目启动时的默认图标?
509 0
如何修改springboot项目启动时的默认图标?
|
SQL Ubuntu Oracle
Ubuntu安装MySQL 8.0 - APT(结尾附视频)
Ubuntu安装MySQL 8.0 - APT(结尾附视频)
549 0
|
前端开发 数据库
2021-07-30大连东软实训第十天---数据库+ 后端学习+ 前端实现员工管理系统(完善)
2021-07-30大连东软实训第十天---数据库+ 后端学习+ 前端实现员工管理系统(完善)
131 0
|
存储 安全 IDE
Linux -- 基础IO(2)
1. 基础认识 文件=内容+属性,对文件的操作无非就两种:对内容进行操作或者对属性进行操作。 文件没有被操作的时候,文件一般是放在磁盘上的。 文件被操作的时候,文件是内存中的,因为是冯诺依曼体系的规定。 文件被操作的时候,文件被加载内存中的必须得有文件属性。 打开文件本质就是将需要的文件属性加载到内存中,操作系统一定同时存在大量的被打开的文件,同时操作系统也要管理这些被打开的文件,要管理文件就需要先描述后组织,先描述就是构建在内存中的文件结构体struct file{},这个结构体可以从磁盘上拿到,后组织就是通过数据结构来组织,比如:链表来连接结构体节点。 文件被分为两大类:磁盘文件、内存文件
286 0
|
5天前
|
存储 人工智能 安全
AI 越智能,数据越危险?
阿里云提供AI全栈安全能力,为客户构建全链路数据保护体系,让企业敢用、能用、放心用