8VC Venture Cup 2016 - Elimination Round (C. Block Towers)
2016-02-28 15:47
176 查看
题目链接:http://codeforces.com/contest/626/problem/C
题意就是给你n个分别拿着2的倍数积木的小朋友和m个分别拿着3的倍数积木的小朋友,每个小朋友拿着积木的数量互不相同,求小朋友中拿着最大积木数的最小的情况(有点绕)。
那最坏的情况就是2n或者3m,假设最大的积木数为x,x肯定能被2或3整除,那么x/2就是2的倍数个数,x/3就是3的倍数的个数,x/6就是6的倍数的个数。
因为这个数据量很小,那么只要暴力寻找刚好符合x/3 + x/2 - x/6 >= n + m && x / 2 >= n && x / 3 >= m的条件的x即可
要是数据量很大就用二分寻找的方法了,刚开始卡了很久,脑子还是不够用啊。
题意就是给你n个分别拿着2的倍数积木的小朋友和m个分别拿着3的倍数积木的小朋友,每个小朋友拿着积木的数量互不相同,求小朋友中拿着最大积木数的最小的情况(有点绕)。
那最坏的情况就是2n或者3m,假设最大的积木数为x,x肯定能被2或3整除,那么x/2就是2的倍数个数,x/3就是3的倍数的个数,x/6就是6的倍数的个数。
因为这个数据量很小,那么只要暴力寻找刚好符合x/3 + x/2 - x/6 >= n + m && x / 2 >= n && x / 3 >= m的条件的x即可
要是数据量很大就用二分寻找的方法了,刚开始卡了很久,脑子还是不够用啊。
#include <iostream> using namespace std; int main() { int a , b; cin >> a >> b; for(int i = 2 ; ; i++) { if(i / 2 >= a && i / 3 >= b && i / 2 + i / 3 - i / 6 >= a + b) { cout << i << endl; break; } } }
相关文章推荐
- 《将博客搬至CSDN》
- 洛谷P1048采药题解
- 提高组比赛的总结(暨D2T2字串分析)
- 导航栏全透明效果, 只保留左右两个按钮, 如何实现?
- Nginx + Tomcat 动静分离实现负载均衡
- DFS基础(1)
- UVa 1584 - Circular Sequence
- Android项目中如何用好构建神器Gradle?
- 006_Http之路径
- MT7620A 编译过程on gentoo
- LintCode- 恢复IP地址
- Java socket编程
- bzoj1861 book书架 splay
- The type java.lang.Object cannot be resolved. It is indirectly referenced from required .class files
- kidd风的IOS日志之第三方-SDWebImage的使用
- gpg-agent具体配置
- 堆排序
- java Junit 测试中异常处理
- ApplicationContext对象的获取方式
- Block基础详解