WZK的减肥计划
WZK 的减肥计划(plan.cpp/ plan.in/ plan.out)
问题描述:
WZK 发现他的体重正迅猛的上升着,对此他感到非常焦虑,想要制定出一套完美的减肥计划。
于是 WZK 翻阅资料,查到了各种食品所含的卡路里和价格,并且千辛万苦的测出了自己一天所需的卡路里。
现在有 n 种食品可供 WZK 选择,每种物品都有给定的价格,卡路里和拥有数量,你的任务就是要选出一些食品使得总卡路里大于消耗量且最小,如果有多种组合满足条件,则取价格最小的。
输入格式:
第一行为两个整数 n(0<n<=100), k(0<k<=10^5)分别表示物品个数和一天消耗的最少卡路里。
接下来 n 行每行 3 个整数, costi, mi, cali( 0< costi,cali<10^6,1<=mi<=100)分别表示价格,数量和所含卡路里。
输入数据保证合法、有解。
输出格式:
满足条件的总卡路里和总价格,中间用一个空格隔开。
注意:保证答案的总卡路里小于 10^5,总价格小于 10^8。
输入样例:
5 10
10 2 6
5 1 9
6 1 6
9 1 6
5 1 9
输出样例:
12 15
写循环的时候一直有不祥的预感
但是因为这次题目都还蛮简单所以就非常笨蛋地安慰了自己
不知道出于什么样的心理也没检查剩下的时间就在题目的pdf文件上乱画画
然后果然这题就差点爆零了呢...
反省!
下次绝对认真画
重写的时候发现其实是二进制分割物品写错了...
一直担心的循环反而神奇地没写错
哈哈哈???
而且倒序循环的时候范围又开大了所以还会超时
可能等输入完数据统计最大卡路里再来循环会优化一些
不过我就懒得写了
^^
#include<bits/stdc++.h>
using namespace std; int n , k , a , b , c , all;
int minn = , ans = ;
int f[] ; int read(){
char c ;
int sign = ;
while((c = getchar())<''|| c >'')
if(c=='-') sign = - ;
int Ans = c - '' ;
while((c = getchar())>=''&& c<='')
Ans = Ans * + c - '' ;
return Ans * sign ;
} void deal(int a , int b){
for(int i = ; i >= b ; -- i){
if(f[i] > a + f[i - b]) {
f[i] = a + f[i - b] ;
if(i > k && ( i < ans || (i == ans && f[i] < minn)))
ans = i , minn = f[i] ;
}
}
} int main(){
//freopen("plan.in","r",stdin);
//freopen("plan.out","w",stdout);
n = read() , k = read() ;
for(int i = ; i <= ; ++ i)
f[i] = ;
f[] = ;
for(int i = ; i <= n ; ++ i){
a = read() , b = read() , c = read() ;
int two = ;
while((b -= two) >= ){
deal(two * a , two * c) ;
two = (two<<) ;
}
b += two ;
if(b != ){
deal(b * a , b * c) ;
}
}
cout << ans << ' ' << minn ;
return ;
}
WZK的减肥计划的更多相关文章
- 男女通用的减肥计划 10分钟家庭hiit训练
在大城市的年轻人,一般都会比较忙,晚上下班吃完饭,到家就要8-9点了,再让他们去,有时候真的不太方便. 其实你如果想要,也不一定要,在家里做hiit运动,就可以了. hiit(高强度间歇运动),是目前 ...
- 【BZOJ-2095】Bridge 最大流 + 混合图欧拉回路 + 二分
2095: [Poi2010]Bridges Time Limit: 10 Sec Memory Limit: 259 MBSubmit: 604 Solved: 218[Submit][Stat ...
- Process Stats:了解你的APP如何使用内存(转)
原文地址:http://android-developers.blogspot.com/2014/01/process-stats-understanding-how-your.html?m=1 原作 ...
- 【BZOJ2095】 Bridge
Time Limit: 1000 ms Memory Limit: 128 MB Description YYD为了减肥,他来到了瘦海,这是一个巨大的海,海中有n个小岛,小岛之间有m座桥连接,两个 ...
- Slimming Plan
问题 B: Slimming Plan 时间限制: 1 Sec 内存限制: 128 MB 题目描述 Chokudai loves eating so much. However, his docto ...
- 我的2017&2018
最近项目进入验收阶段,所以上班没那么忙碌了,但是怎么说呢,我可能天生是闲不住的主,觉得浑身不自在(我这样的人是不是特别不会享福),此处应该有个笑脸哈. 翻看了博客园好几个大牛写的技术文章,感慨大牛不愧 ...
- 女性睾酮水平高(High Testosterone Levels in Women)
在外国网站了解睾酮高的一些资料,顺便记录生活点滴. 摘自网址:https://www.healthline.com/health/high-testosterone-in-women 高睾酮的妇女 睾 ...
- BZOJ2095:[POI2010]Bridges(最大流,欧拉图)
Description YYD为了减肥,他来到了瘦海,这是一个巨大的海,海中有n个小岛,小岛之间有m座桥连接,两个小岛之间不会有两座桥,并且从一个小岛可以到另外任意一个小岛.现在YYD想骑单车从小岛1 ...
- 【刷题】BZOJ 2095 [Poi2010]Bridges
Description YYD为了减肥,他来到了瘦海,这是一个巨大的海,海中有n个小岛,小岛之间有m座桥连接,两个小岛之间不会有两座桥,并且从一个小岛可以到另外任意一个小岛.现在YYD想骑单车从小岛1 ...
随机推荐
- Linux (Windows Linux子系统)
Linux (Windows Linux子系统) 如果想体验Linux环境下开发和运行.NET Core应用,我们有多种选择.一种就是在一台物理机上安装原生的Linux,我们可以根据自身的喜好选择某种 ...
- 1.7hashmap并发成环
https://mp.weixin.qq.com/s?__biz=MzIxMjE5MTE1Nw==&mid=2653192000&idx=1&sn=118cee6d1c67e7 ...
- PIX 防火墙
---恢复内容开始--- 一 , PIX 防火墙的认识 PIX 是cisco 的硬件防火墙 硬件防火墙的工作速度快,使用方便. PIX 有很多型号,并发连接数是PIX防火墙的重要参数 PIX 25 ...
- (转)useradd用户,组管理案例
原文:https://www.cnblogs.com/Csir/p/6403830.html?utm_source=itdadao&utm_medium=referral 示例:要求oldbo ...
- Activemq和Rabbitmq端口冲突
端口5672被占用了!使用cmd命令行查到被erl.exe占用了,想到这不是RabbitMQ的服务嘛 netstat -aon | findstr "5672"tasklist | ...
- 【转】pom.xml讲解
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/20 ...
- keil下JLINK在线调试仿真设置,SWD连接
keil下JLINK在线调试仿真设置,以下三个步骤搞定: 有时我们编译时会遇到空间不足的情况,首先我们应该把 flash和RAM的size 设置为当前所用芯片的大小,如下我使用了一个片上flash 2 ...
- django之分页插件
from django.utils.safestring import mark_safe class Page: def __init__(self, current_page, data_coun ...
- 机器学习经典算法之SVM
SVM 的英文叫 Support Vector Machine,中文名为支持向量机.它是常见的一种分类方法,在机器学习中,SVM 是有监督的学习模型. 什么是有监督的学习模型呢?它指的是我们需要事先对 ...
- uva 10328 - Coin Toss 投硬币(dp递推,大数)
题意:抛出n次硬币(有顺序),求至少k个以上的连续正面的情况的种数. 思路:转换成求抛n个硬币,至多k-1个连续的情况种数,用所有可能出现的情况种数减去至多k-1个的情况,就得到答案了.此题涉及大数加 ...