hdu 4957 贪心破木桶接水大trick
http://acm.hdu.edu.cn/showproblem.php?pid=4957
拿n只破的木桶去接水,每只木桶漏水速度为a[i],最后要得到b[i]单位的水,自来水的出水速度为V,木桶里只要有水就会漏水,每次只能接一只木桶。问最短需要多少时间,每只木桶里的水为b[i]
ans+=(p[i].b+ans*p[i].a)/(v-p[i].a) => ans+=p[i].b/(v-p[i].a)+(ans*p[i].a)/(v-p[i].a)
得到(ans*p[i].a)/(v-p[i].a)的值要由小到大排序
然后依次搞就行了
需要注意的是b==0的情况,需要的时间为0,bc上此题直接0AC...。
#include <cstdio>
#include <cstdlib>
#include <cmath>
#include <cstring>
#include <string>
#include <queue>
#include <vector>
#include<set>
#include <iostream>
#include <algorithm>
using namespace std;
#define RD(x) scanf("%d",&x)
#define RD2(x,y) scanf("%d%d",&x,&y)
#define clr0(x) memset(x,0,sizeof(x))
#define eps 1e-9
typedef long long LL;
struct node{
int a,b;
}s[60];
bool cmp(node x,node y)
{
return x.a*y.b > y.a*x.b;
}
void work()
{
int n,v;
RD2(n,v);
for(int i = 0;i < n;++i){
scanf("%d",&s[i].a);
//cout<<s[i].a;
}
for(int i = 0;i < n;++i){
scanf("%d",&s[i].b);
}
for(int i = 0;i < n;++i)
if(s[i].b&&v<=s[i].a){
puts("-1");
return;
}
sort(s,s+n,cmp);
double ans = 0.0;
for(int i = 0;i < n;++i){
if(s[i].b==0)
continue;
ans += (ans*(double)s[i].a + (double)s[i].b)/((double)v - (double)s[i].a);
}
printf("%.0lf\n",ans);
}
int main() {
int nn;
RD(nn);
while(nn--){
work();
}
return 0;
}
hdu 4957 贪心破木桶接水大trick的更多相关文章
- HDU 1052 贪心+dp
http://acm.hdu.edu.cn/showproblem.php?pid=1052 Tian Ji -- The Horse Racing Time Limit: 2000/1000 MS ...
- Hdu 5289-Assignment 贪心,ST表
题目: http://acm.hdu.edu.cn/showproblem.php?pid=5289 Assignment Time Limit: 4000/2000 MS (Java/Others) ...
- hdu 4803 贪心/思维题
http://acm.hdu.edu.cn/showproblem.php?pid=4803 话说C++还卡精度么? G++ AC C++ WA 我自己的贪心策略错了 -- 就是尽量下键,然后上 ...
- hdu 1735(贪心) 统计字数
戳我穿越:http://acm.hdu.edu.cn/showproblem.php?pid=1735 对于贪心,二分,枚举等基础一定要掌握的很牢,要一步一个脚印走踏实 这是道贪心的题目,要有贪心的意 ...
- hdu 4974 贪心
http://acm.hdu.edu.cn/showproblem.php?pid=4974 n个人进行选秀,有一个人做裁判,每次有两人进行对决,裁判可以选择为两人打分,可以同时加上1分,或者单独为一 ...
- hdu 4982 贪心构造序列
http://acm.hdu.edu.cn/showproblem.php?pid=4982 给定n和k,求一个包含k个不相同正整数的集合,要求元素之和为n,并且其中k-1的元素的和为完全平方数 枚举 ...
- HDU 2307 贪心之活动安排问题
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=2037 今年暑假不AC Time Limit: 2000/1000 MS (Java/Others) ...
- HDU 2111 Saving HDU【贪心】
解题思路:排序后贪心,和fatmouse's trade 类似 Saving HDU Time Limit: 3000/1000 MS (Java/Others) Memory Limit: ...
- HDU 2831 (贪心)
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=2831 题目大意:植物大战僵尸.给定种植植物时间间隔t,以及每个僵尸的到达时间v,生命d.问是否能赢. ...
随机推荐
- Python递归的经典案例
目录 : 一.递归的简介 二.递归的经典应用 2.1 递归求阶乘 2.2 递归推斐波那契数列 2.3 二分法找有序列表指定值 2.4 递归解汉诺塔 前言: 当我们碰到诸如需要求阶乘或斐 ...
- idea 安装uml 画图工具
centos7上: yum -y install graphviz mac上: brew install Graphviz file -> setting->plugins 安装plant ...
- Autopilot Pattern Redis
https://github.com/autopilotpattern/redis Architecture 正在运行的群集包括以下组件: Redis :我们使用的是Redis 3.2. Redis ...
- java链接FTP实现上传和下载
FtpUtil.java import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStr ...
- IE低版本浏览器兼容问题
head标签中填写如下代码 <meta name="renderer" content="webkit"/> <meta name=" ...
- SpringCloud 简单理解
0.SpringCloud,微服务架构.包括 服务发现(Eureka),断路器(Hystrix),服务网关(Zuul),客户端负载均衡(Ribbon).服务跟踪(Sleuth).消息总线(Bus).消 ...
- C++ auto
auto用来声明自动变量.它是存储类型标识符,表明变量(自动)具有本地范围.块范围的变量声明(如for循环体内的变量声明)默认为auto存储类型. 好处:auto变量在离开作用域是会变程序自动释放,不 ...
- compression
compression - 必应词典 美[kəmˈpreʃ(ə)n]英[kəm'preʃ(ə)n] n.压缩:加压:压紧:浓缩 网络压迫:压力:加压包扎
- SSL - 简介
一.密码技术 要了解SSL协议,首先要了解:加密算法.消息摘要算法(又称为哈希算法Hash),数字签名等概念.这些技术每个都可以写出一整本的书,它们结合在一起,提供了保密性.完整性和身份验证的功能. ...
- Mininet
在Coursera SDN开放课程中,编程作业要用Mininet来完成.这里对Mininet做一个简单的介绍. 什么是Mininet Mininet是由一些虚拟的终端节点(end-hosts).交换机 ...