【BZOJ5281】Talent Show(分数规划)

题面

BZOJ

洛谷

题解

二分答案直接就是裸的分数规划,直接跑背包判断是否可行即可。

#include<iostream>
#include<cstdio>
using namespace std;
#define ll long long
#define MAX 255
inline int read()
{
int x=0;bool t=false;char ch=getchar();
while((ch<'0'||ch>'9')&&ch!='-')ch=getchar();
if(ch=='-')t=true,ch=getchar();
while(ch<='9'&&ch>='0')x=x*10+ch-48,ch=getchar();
return t?-x:x;
}
int n,W,w[MAX],t[MAX];
double s[MAX],f[MAX][1010];
void upd(double &x,double y){if(x<y)x=y;}
int main()
{
n=read();W=read();
for(int i=1;i<=n;++i)
w[i]=read(),t[i]=read();
double l=0,r=10000;
while(r-l>1e-5)
{
double mid=(l+r)/2;
for(int i=1;i<=n;++i)s[i]=t[i]-mid*w[i];
for(int i=0;i<=n;++i)
for(int j=0;j<=W;++j)
f[i][j]=-1e18;
f[0][0]=0;
for(int i=1;i<=n;++i)
for(int j=0;j<=W;++j)
{
upd(f[i][j],f[i-1][j]);
upd(f[i][min(W,j+w[i])],f[i-1][j]+s[i]);
}
if(f[n][W]>=0)l=mid;
else r=mid;
}
int ans=l*1000;
printf("%d\n",ans);
return 0;
}

【BZOJ5281】Talent Show(分数规划)的更多相关文章

  1. LG4377 「USACO2018OPEN」Talent Show 分数规划+背包

    问题描述 LG4377 题解 有 \(n\) 个物品,每个物品有两个权值 \(a,b\) 需要确定一组 \(w_i \in [0,1]\) ,使得 \(\frac{\sum{w_i \times a_ ...

  2. 洛谷 P4377 [USACO18OPEN]Talent Show + 分数规划

    分数规划 分数规划可以用来处理有关分数即比值的有关问题. 而分数规划一般不单独设题,而是用来和dp,图论,网络流等算法结合在一起. 而基础的做法一般是通过二分. 二分题目我们都知道,需要求什么的最小或 ...

  3. BZOJ5281: [Usaco2018 Open]Talent Show(01分数规划&DP)

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

  4. bzoj5281/luogu4377 Talent Show (01分数规划+背包dp)

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

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

    Description FarmerJohn要带着他的N头奶牛,方便起见编号为1…N,到农业展览会上去,参加每年的达牛秀!他的第i头奶牛重 量为wi,才艺水平为ti,两者都是整数.在到达时,Farme ...

  6. 分数规划模板(洛谷P4377 [USACO18OPEN]Talent Show)(分数规划,二分答案,背包)

    分数规划是这样一个东西: 给定若干元素,每个元素有两个属性值\(a_i,b_i\),在满足题目要求的某些限制下选择若干元素并求出\(\frac{\sum a}{\sum b}\)的最大值. 如果没有限 ...

  7. BZOJ 5281--[Usaco2018 Open]Talent Show(分数规划&单调队列&DP)

    5281: [Usaco2018 Open]Talent Show Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 79  Solved: 58[Sub ...

  8. luogu 4377 Talent show 01分数规划+背包dp

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

  9. 01分数规划初探?!By cellur925

    都要\(NOIp\)了为啥我还在看这种玄学玩意..... \(01\)分数规划:这是一个问题模型\(qwq\),一般是在求\[\frac{\sum_{i=1}^{n} a_i*x_i}{\sum_{i ...

随机推荐

  1. Python操作Saltstack

    1.代码 # -*- coding:utf-8 -*- import urllib.request import urllib.parse import json class saltAPI(): d ...

  2. TF-IDF算法-golang实现

    1.TF-IDF算法介绍 TF-IDF(term frequency–inverse document frequency,词频-逆向文件频率)是一种用于信息检索(information retrie ...

  3. How develop BigData Project in Visual Studio

  4. 20155333 《网络对抗》Exp2 后门原理与实践

    20155333 <网络对抗>Exp2 后门原理与实践 1.例举你能想到的一个后门进入到你系统中的可能方式? 下载的软件中捆绑有后门: 浏览的网页或其上的小广告: 有些网页会自动安装软件. ...

  5. POJ 2965&&1753

    最近由于复习备考(然而考得还是很炸),很久没打题目了.现在开始刷寒假作业,不得不搞POJ 话说没有中文真的好烦啊! 先看1753 题目大意是说在一个4*4的格子中有黑白两色的棋子,你可以翻动其中的棋子 ...

  6. css怎样去掉多个Img标签之间的间隙

    在写css的时候经常会遇到这样的情况,两张宽度加起来是2n的图片,在宽度为2n的容器中放不下,这是因为两张图片之间有一段间隙的缘故,产生这种现象的原因是浏览器把两个img标签之间的空格当成了空白节点. ...

  7. Asp.Net_Session跟Cookie的记住登陆名

    最近在做ASP.NET的项目时,接触到了登陆权限模块,所有总结了一下登陆时用到的知识和方法技巧. 如图说明:实现的效果如图,由于验证码验证比较简单这里就不介绍了 首先用代码生成器生成项目,以三层为例进 ...

  8. ANSYS渡槽槽身动水压力的施加(2)——U型渡槽

    U型渡槽动水压力荷载施加命令及说明 程序中需要用到ANSYS重启动,因为需提取前一步加速度结果以施加部分动水压力: 默认Y方向为重力方向,X方向为横槽向,Z方向为纵槽向: 需准备地震波文件: 需先将槽 ...

  9. PHP学习 文件访问和写入

    <?php $path = $_SERVER['PHP_SELF']; //PHP_SELF:当前执行脚本的文件名,与 document root 有关 echo basename($path) ...

  10. Cooperate with Myself

    (一) 第一周的第一批作业们.  且不说一周之内要看完我们的300多页的教材,也不说需要在维基的大批量的文献中海底捞针,单是这个四则运算的生成程序就让我从假期的迷糊状态中幡然觉悟了:哦!惊险刺激的新的 ...