BZOJ5281: [Usaco2018 Open]Talent Show 01分数规划+01背包

时间:2022-09-05 19:39:29

Description

FarmerJohn要带着他的N头奶牛,方便起见编号为1…N,到农业展览会上去,参加每年的达牛秀!他的第i头奶牛重
量为wi,才艺水平为ti,两者都是整数。在到达时,FarmerJohn就被今年达牛秀的新规则吓到了:
 
(一)参加比赛的一组奶牛必须总重量至少为W
 
(这是为了确保是强大的队伍在比赛,而不仅是强大的某头奶牛),并且
 
(二)总才艺值与总重量的比值最大的一组获得胜利。
 
FJ注意到他的所有奶牛的总重量不小于W,所以他能够派出符合规则(一)的队伍。帮助他确定这样的队伍中能够
达到的最佳的才艺与重量的比值。
 

Input

输入的第一行包含N和W。下面N行,每行用两个整数wi和ti描述了一头奶牛。
1≤N≤250
1≤W≤1000
1≤wi≤10^6
1≤ti≤10^3
 

Output

请求出Farmer用一组总重量最少为W的奶牛最大可能达到的总才艺值与总重量的比值。
如果你的答案是A,输出1000A向下取整的值,以使得输出是整数
(当问题中的数不是一个整数的时候,向下取整操作在向下舍入到整数的时候去除所有小数部分)。
 

Sample Input

3 15
20 21
10 11
30 31

Sample Output

1066
在这个例子中,总体来看最佳的才艺与重量的比值应该是仅用一头才艺值为11、重量为10的奶牛,但是由于我们需
要至少15单位的重量,最优解最终为使用这头奶牛加上才艺值为21、重量为20的奶牛。这样的话才艺与重量的比值
为(11+21)/(10+20)=32/30=1.0666666...,乘以1000向下取整之后得到1066。

Solution

01分数规划
 
二分答案
 
用一个01背包去判断一下合法性就行
 
#include <bits/stdc++.h>

using namespace std ;

#define ll long long
#define N 1010
#define inf 0x3f3f3f3f ll t[ N ] , w[ N ] , f[ N ] ;
int n , m ; bool check( int x ) {
for( int i = ; i <= m ; i ++ ) f[ i ] = -inf ;
for( int i = ; i <= n ; i ++ ) {
ll v = t[ i ] - w[ i ] * x ;
for( int j = m ; j >= ; j -- ) {
if( f[ j ] == -inf ) continue ;
int k = j + w[ i ] ;
if( k > m ) k = m ;
f[ k ] = max( f[ k ] , f[ j ] + v ) ;
}
}
return f[ m ] >= ;
} int main() {
scanf( "%d%d" , &n , &m ) ;
for( int i = ; i <= n ; i ++ ) {
scanf( "%lld%lld" , &w[ i ] , &t[ i ] ) ;
t[ i ] *= ;
}
int ans = , l = , r = 1e7 ;
while( l <= r ) {
int mid = ( l + r ) >> ;
if( check( mid ) ) l = mid + , ans = mid ;
else r = mid - ;
}
printf( "%d\n" , ans ) ;
}

BZOJ5281: [Usaco2018 Open]Talent Show 01分数规划+01背包的更多相关文章

  1. 【BZOJ】4753&colon; &lbrack;Jsoi2016&rsqb;最佳团体 01分数规划&plus;树上背包

    [题意]n个人,每个人有价值ai和代价bi和一个依赖对象ri<i,选择 i 时 ri 也必须选择(ri=0时不依赖),求选择k个人使得Σai/Σbi最大.n<=2500,ai,bi< ...

  2. BZOJ&period;4753&period;&lbrack;JSOI2016&rsqb;最佳团体&lpar;01分数规划 树形背包DP&rpar;

    题目链接 \(Description\) 每个点有费用si与价值pi,要求选一些带根的连通块,总大小为k,使得 \(\frac{∑pi}{∑si}\) 最大 \(Solution\) 01分数规划,然 ...

  3. &lbrack;Jsoi2016&rsqb;最佳团体 BZOJ4753 01分数规划&plus;树形背包&sol;dfs序

    分析: 化简一下我们可以发现,suma*ans=sumb,那么我们考虑二分ans,之后做树形背包上做剪枝. 时间复杂度证明,By GXZlegend O(nklogans) 附上代码: #includ ...

  4. bzoj 4753 最佳团体 —— 01分数规划&plus;树形背包

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=4753 注意赋初值为 -inf: eps 设为 1e-3 会 WA ... 代码如下: #in ...

  5. POJ 2728 Desert King &starf;&lpar;01分数规划介绍 && 应用の最优比率生成树&rpar;

    [题意]每条路径有一个 cost 和 dist,求图中 sigma(cost) / sigma(dist) 最小的生成树. 标准的最优比率生成树,楼教主当年开场随手1YES然后把别人带错方向的题Orz ...

  6. BZOJ5281&colon; &lbrack;Usaco2018 Open&rsqb;Talent Show(01分数规划&amp&semi;DP)

    5281: [Usaco2018 Open]Talent Show Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 166  Solved: 124[S ...

  7. bzoj5281&sol;luogu4377 Talent Show &lpar;01分数规划&plus;背包dp&rpar;

    就是01分数规划的思路,只不过当把w[i]-r*t[i]>0的选完以后如果w值还没达到要求,那就再01背包dp一下就好了(dp时w值>W的时候就存在W里就不会爆内存了). (跑得很慢..大 ...

  8. 【BZOJ5281】Talent Show(分数规划)

    [BZOJ5281]Talent Show(分数规划) 题面 BZOJ 洛谷 题解 二分答案直接就是裸的分数规划,直接跑背包判断是否可行即可. #include<iostream> #in ...

  9. luogu 4377 Talent show 01分数规划&plus;背包dp

    01分数规划+背包dp 将分式下面的部分向右边挪过去,通过二分答案验证, 注意二分答案中如果验证的mid是int那么l=mid+1,r=mid-1,double类型中r=mid,l=mid; 背包dp ...

随机推荐

  1. Unity 组件不常用知识备注

    Rigidbody(刚体) Interpolate:当物体进行不规则移动时,通过上一帧的行为来进行平滑移动 Extrapolate:通过推算下一帧的行为来进行平滑移动 PhysicMaterial(物 ...

  2. &lbrack;我的试题&rsqb;Test of String

    1.前言 这是我出的第一套题目,话说感觉有点晚了,还是在向总安排下出的.我被安排的是字符串方面的内容,这应该相对而言是比较小众的知识点吧,但是一样的有作用的,也有很神的题目.所谓是NOIP模拟题,其实 ...

  3. 【Linux】LAMP环境的搭建

    LAMP定义 LAMP指的Linux(操作系统).ApacheHTTP 服务器,MySQL(有时也指MariaDB,数据库软件) 和PHP(有时也是指Perl或Python) 的第一个字母,一般用来建 ...

  4. 【微信开发之问题集锦】redirect&lowbar;uri 参数错误

    问题答案:看看网页授权域名是不是以"http://",是则去掉.(如果网页授权域名都没修改,那就去修改吧,要注意域名不要带"http://"."htt ...

  5. Android Studio中获取sha1证书指纹数据的方法

    高德地图开发申请KEY的时候需要开发者提供SHA1证书指纹数据,在eclipse很容易就找到了,但是Android Studio很久也没找到,只能使用在网上看到的方法了,在Android Studio ...

  6. C&plus;&plus;结构体中sizeof

    说明: 结构体的sizeof值,并不是简单的将其中各元素所占字节相加,而是要考虑到存储空间的字节对齐问题.这些问题在平时编程的时候也确实不怎么用到,但在一些笔试面试题目中出是常常出现,一.解释 现代计 ...

  7. 2&rpar;PHP中把读取&period;txt中内容并转为UTF-8格式

    <?php $filename = "filename.txt"; $handle = fopen($filename, "r");//读取二进制文件时, ...

  8. SpringMVC对包的扫描范围扩大后,导致的事务配置不生效问题

    问题场景 项目使用的框架:Spring 4.1.4 + Hibernate 4.3.8 + MySQL. web.xml中对Spring的配置: <!-- 把 Spring 容器集成到 Web ...

  9. HTTP与HTTPS有哪些区别?

    大纲 这里写图片描述一.前言: 这里写图片描述这里写图片描述先来观察这两张图,第一张访问域名http://www.12306.cn,谷歌浏览器提示不安全链接,第二张是https://kyfw.1230 ...

  10. typedef定义数组类型

    typedef语句定义数组类型 1. 一维数组类型的定义格式 typedef <元素类型关键字><数组类型名>[<常量表达式>]; 例如: (1) typedef ...