BZOJ 2257 [Jsoi2009]瓶子和燃料
来源:互联网 发布:访问nginx 403 编辑:程序博客网 时间:2024/04/28 06:47
题目:http://www.lydsy.com/JudgeOnline/problem.php?id=2257
题意:给定
题解:
考虑两个瓶子(容量为a
和b
),互相倒来倒去能表示的体积都是以两个瓶子容量生成的值ax+by
,而(a,b)|ax+by
,所以最小体积就是(a,b)
,推广到k个瓶子,题目即最大化k
个瓶子的最大公因数。
考虑将每个数分解因数,找最大且出现至少k
次的因数即可。
不考虑map的时间复杂度为
代码:
#include <map>#include <cstdio>#include <algorithm>using namespace std;map<int, int> cnt;int n, k, x, i;int main(){ scanf("%d%d", &n, &k); while(n--) { scanf("%d", &x); for(i = 1; i * i < x; ++i) if(x % i == 0) ++cnt[i], ++cnt[x / i]; if(i * i == x) ++cnt[i]; } map<int, int>::iterator it = cnt.end(), jt = cnt.begin(); for(--it, --jt; it != jt; --it) if(it -> second >= k) { printf("%d\n", it -> first); break; } return 0;}
0 0
- BZOJ 2257 JSOI2009 瓶子和燃料 数论
- BZOJ 2257 [Jsoi2009]瓶子和燃料
- BZOJ 2257: [Jsoi2009]瓶子和燃料
- BZOJ 2257 [Jsoi2009] 瓶子和燃料
- bzoj 2257: [Jsoi2009]瓶子和燃料
- bzoj 2257: [Jsoi2009]瓶子和燃料
- BZOJ 2257: [Jsoi2009]瓶子和燃料 数论
- 2257: [Jsoi2009]瓶子和燃料
- 2257: [Jsoi2009]瓶子和燃料
- 2257: [Jsoi2009]瓶子和燃料
- bzoj 2257: [Jsoi2009]瓶子和燃料 裴蜀定理
- bzoj 2257: [Jsoi2009]瓶子和燃料 (gcd+map)
- bzoj 2257: [Jsoi2009]瓶子和燃料(裴蜀定理)
- BZOJ 2257: [Jsoi2009]瓶子和燃料 裴蜀定理
- BZOJ 2257 [Jsoi2009]瓶子和燃料 裴蜀定理
- bzoj 2257 瓶子和燃料
- [BZOJ2257][Jsoi2009]瓶子和燃料
- BZOJ2257: [Jsoi2009]瓶子和燃料
- Android应用性能优化小结
- 总结之回调函数
- Java Object...
- Makefile 中 := , ?=, +=, = , 的区别
- 安装 valgrind
- BZOJ 2257 [Jsoi2009]瓶子和燃料
- 关于Java的9个谬论
- 输入框只能输入数字和“,”
- Android之非主线程修改UI (一)
- 项目工作总结篇
- Android创建杀不死的Service
- JSONP跨域的原理解析
- C#float与double转换问题
- SAPMMC控制台服务消失的解决方法