Gym 100553B Burrito King 无脑背包
题意就是你有n和m两个上限 吃一个东西会同时增加两个东西 m的值不能超过给定的m 问最后的n m值和每个东西吃了多少
贪心一下就好了 算一下性价比 从最大的开始吃 直到吃满了m n也一定是最大了
只是想借这道题说一下经常卡题的小bug 因为这道题一开始卡精度 后来又卡除零 很诡异……
粗心bug小总结~
1.double除零是有返回值的 int除零才是RE 同时注意数据范围有没有0
2.精度可能要比题意中小一点
3.两组数据之间也有换行
4.两层for里i j用混了
5.define的用法
6.三目运算符可能会RE也可能超时
7.预处理数组时越界
8.case记得打
9.有的地方爆了int要用long long
(10.想起来再补充……)
贴代码
#include<stdio.h>
#include<iostream>
#include<algorithm>
#include<math.h>
#include<string.h>
#include<map>
#include<vector>
#include<queue>
#define M(a,b) memset(a,b,sizeof(a))
using namespace std;
const double eps=1e-;
struct thing {
double z,m,ha,uh,val,sum,sum2,need;
} th[];
bool cmp(thing a,thing b) {
return a.ha*b.uh>a.uh*b.ha;
}
bool cmp1(thing a,thing b) {
return a.z<b.z;
}
int main() {
// printf("%f\n",1.0/0);
freopen("burrito.in","r",stdin);
freopen("burrito.out","w",stdout);
int n,a,b;
while(~scanf("%d%d%d",&n,&a,&b)) {
for(int i=; i<n; i++) {
th[i].z=i;
scanf("%lf%lf%lf",&th[i].m,&th[i].ha,&th[i].uh);
th[i].sum=th[i].m*th[i].ha;
th[i].sum2=th[i].m*th[i].uh;
th[i].need=;
}
sort(th,th+n,cmp);
double nowa=,nowb=;
for(int i=; i<n; i++) {
if(th[i].uh==) {
nowa+=th[i].sum;
th[i].need=th[i].m;
} else if(nowb+th[i].sum2>=b) {
if(nowb+th[i].sum2==b) {
th[i].need=th[i].m;
nowb+=th[i].sum2;
nowa+=th[i].sum;
} else {
th[i].need=(b-nowb)*1.0/th[i].uh*1.0;
nowa+=th[i].need*th[i].ha;
nowb=b;
}
break;
} else {
nowa+=th[i].sum;
nowb+=th[i].sum2;
th[i].need=th[i].m;
}
}
if(nowa<a-eps) printf("-1 -1\n");
else {
sort(th,th+n,cmp1);
printf("%.10lf %.10lf\n",nowa,nowb);
for(int i=; i<n; i++)
printf("%.10lf%c",th[i].need,i==n-?'\n':' ');
}
}
return ;
}
/* 2 5 5
2 2 1
2 2 4
2 5 5
2 2 2
2 2 4 */
Gym 100553B Burrito King 无脑背包的更多相关文章
- 【原】无脑操作:express + MySQL 实现CRUD
基于node.js的web开发框架express简单方便,很多项目中都在使用.这里结合MySQL数据库,实现最简单的CRUD操作. 开发环境: IDE:WebStorm DB:MySQL ------ ...
- Go语言及Web框架Beego环境无脑搭建
[原]Go语言及Web框架Beego环境无脑搭建 本文涉及软件均以截至到2013年10月12日的最新版本为准 1. 相关软件准备: 1) go1.2rc1.windows-386.msi,对应32位w ...
- 【原】无脑操作:eclipse + maven搭建SSM框架
网上看到一些Spring + Spring MVC + MyBatis框架的搭建教程,不是很详细或是时间久远了,自己动手整一个简单无脑的! 0.系统环境 1)Windows 10 企业版 2)JDK ...
- 计蒜客 无脑博士 bfs
题目链接无脑博士的试管们 思路:直接模拟倒水过程即可,但是需要记忆判断当前的情况是否已经处理过.dfs和bfs都ok AC代码 #include <cstdio> #include < ...
- CodeForces 909E Coprocessor(无脑拓扑排序)
You are given a program you want to execute as a set of tasks organized in a dependency graph. The d ...
- 【原】无脑操作:ElasticSearch学习笔记(01)
开篇来自于经典的“保安的哲学三问”(你是谁,在哪儿,要干嘛) 问题一.ElasticSearch是什么?有什么用处? 答:截至2018年12月28日,从ElasticSearch官网(https:// ...
- 【原】无脑操作:IDEA + maven + Shiro + SpringBoot + JPA + Thymeleaf实现基础授权权限
上一篇<[原]无脑操作:IDEA + maven + Shiro + SpringBoot + JPA + Thymeleaf实现基础认证权限>介绍了实现Shiro的基础认证.本篇谈谈实现 ...
- 【原】无脑操作:IDEA + maven + Shiro + SpringBoot + JPA + Thymeleaf实现基础认证权限
开发环境搭建参见<[原]无脑操作:IDEA + maven + SpringBoot + JPA + Thymeleaf实现CRUD及分页> 需求: ① 除了登录页面,在地址栏直接访问其他 ...
- 【原】无脑操作:EasyUI Tree实现左键只选择叶子节点、右键浮动菜单实现增删改
Easyui中的Tree组件使用频率颇高,经常遇到的需求如下: 1.在树形结构上,只有叶子节点才能被选中,其他节点不能被选中: 2.在叶子节点上右键出现浮动菜单实现新增.删除.修改操作: 3.在非叶子 ...
随机推荐
- Linked List - leetcode
138. Copy List with Random Pointer //不从head走 前面加一个dummy node 从dummy走先连head 只需记录当前节点 //这样就不需要考虑是先new ...
- 安装Genymotion与集成eclipse,最后有集成android studio
本安装过程从不用到VPN 一切国内网络都可以解决. 首先下载Genymotion,网址 https://www.genymotion.com/account/login/ 首先需要注册,我使用163 ...
- json字符串中key值下划线命名转换为驼峰命名
json字符串中key值下划线命名转换为驼峰命名: 例如: 原json串: String json= "{'user_name':'ok','user_sex':0,'object_info ...
- 面向对象UML中类关系
如果你确定两件对象之间是is-a的关系,那么此时你应该使用继承:比如菱形.圆形和方形都是形状的一种,那么他们都应该从形状类继承而不是聚合.如果你确定两件对象之间是has-a的关系,那么此时你应该使用聚 ...
- java模拟数据库缓存
实现缓存一些数据到本地,避免重复查询数据库,对数据库造成压力,代码如下: package threadLock; import java.util.HashMap; import java.util. ...
- 第一百二十一节,JavaScript事件绑定及深入
JavaScript事件绑定及深入 学习要点: 1.传统事件绑定的问题 2.W3C事件处理函数 3.IE事件处理函数 4.事件对象的其他补充 事件绑定分为两种:一种是传统事件绑定(内联模型,脚本模型) ...
- SSLv3协议、TLSv1.2协议配置不对导致javax.ws.rs.ProcessingException: java.net.SocketException: Connection reset
SSl:Secure Sockets Layer 安全套接层 TLS:Transport Layer Security传输层安全 是为网络通信提供安全及数据完整性的一种安全协议.TLS与SSL在传输层 ...
- c#中命令copy已退出,返回值为1
c#中命令copy已退出,返回值为1 本正经的道:董姐刚才你说的修心养性其中的'修心'我 有孕在身刚好由戴梦瑶顶替了她的位置按照的指示 ╋旆呆 湎术葶页 邾箕砜笳 烦璜卿廑 奶奶个腿儿的等下次非让你 ...
- 返回变量的类型VarType函数
'vbEmpty 0 Empty(未初始化)'vbNull 1 Null(无有效数据)'vbInteger 2 整数'vbLong 3 长整数'vbSingle 4 单精度浮点数'vbDouble 5 ...
- Python---day5-各类模块的使用
#_*_coding:utf-8_*_ 时间模块import time # print(time.clock()) #返回处理器时间,3.3开始已废弃 , 改成了time.process_time() ...