cf#342-A-Guest From the Past-贪心
2016-02-15 00:30
417 查看
http://codeforces.com/contest/625/problem/A
题意给n块钱买牛奶
塑料盒牛奶价格 a
玻璃盒牛奶价格 b
回收玻璃盒的价格 c
问你最多能买多少盒牛奶
贪心,看 a 便宜还是 d=b-c便宜
如果a便宜,就先尽可能买a,剩下的钱买b
否则,先尽可能买b,最后买a
题意给n块钱买牛奶
塑料盒牛奶价格 a
玻璃盒牛奶价格 b
回收玻璃盒的价格 c
问你最多能买多少盒牛奶
贪心,看 a 便宜还是 d=b-c便宜
如果a便宜,就先尽可能买a,剩下的钱买b
否则,先尽可能买b,最后买a
#include <cstdio> #include <cmath> #include <cstring> #include <string> #include <algorithm> #include <queue> #include <map> #include <set> #include <vector> #include <iostream> using namespace std; #define lson l , m , rt << 1 #define rson m + 1 , r , rt << 1 | 1 const __int64 inf=2147483647; const double pi=acos(-1.0); double eps=0.000001; __int64 min(__int64 a,__int64 b) {return a<b?a:b;} __int64 max(__int64 a,__int64 b) { return a<b?b:a; } __int64 maxx=0; __int64 n,a,b,c; int main() { scanf("%I64d",&n); scanf("%I64d%I64d%I64d",&a,&b,&c); __int64 d=b-c; __int64 cun=0; if(d<a) //如果买b的代价(d)比较小,则贪心买多一点b { if (n>b) { cun+= (n-b)/d; //先留下一个b,以免出现无法购买的情况 n=b+(n-b)%d; } if (n>=b) { cun++; //买下最后一个b n-=d; } cun+=n/a; //剩下的都去买a } else //买a的代价比较小,贪心买a { cun+=n/a; n=n%a; if (n>b) //剩余的钱如果可以买,则按上面的方法,尽可能买b { cun+= (n-b)/d; n=b+(n-b)%d; } if (n>=b) { cun++; n-=d; } } printf("%I64d\n",cun); return 0; }
相关文章推荐
- Codeforces 626A Robot Sequence
- CSS Media Queries
- UEditor DIY笔记
- Angular 学习系列 - - $templateCache 和 $templateRequest
- 如何使用segue和didSelectRowAtIndexPath进行界面跳转
- EasyUI DataGrid根据字段动态合并单元格
- n皇后问题leetcode-51. N-Queens
- VMWare下安装ubuntu64位出现错误“kernel requires an x86_64 cpu, but only detected ”
- YTU 2402: Common Subsequence
- Atitit.ioc 动态配置文件guice 设计原理
- Atitit.ioc 动态配置文件guice 设计原理
- Atitit.ioc 动态配置文件guice 设计原理
- NSValue和NSNumber(OC的包装类)
- hibernate_sequence表.。。
- 使用UIImagePickerController时3DTouch引起的Crash问题的解决--备用
- Android酷炫实用的开源框架(UI框架)
- Adafruit的樹莓派教程第十三課:電力控制
- Adafruit的樹莓派教程第十二課:感知運動
- 如何查看Ubuntu 蓝牙bluez 软件版本
- 300. Longest Increasing Subsequence LeetCode