BZOJ 2257 JSOI 2009 瓶子和燃料 数学
来源:互联网 发布:linux系统日志在哪里 编辑:程序博客网 时间:2024/04/28 18:16
题目大意:有一些固定容量的瓶子,你想从火星人用k个瓶子那里拿到一些燃料,火星人只能从一个瓶子中转移到另一个瓶子中,或者把一个瓶子中的燃料倒掉,或者将一个瓶子装满。每次火星人会给你他能给出的最少的燃料。问你能够得到的最多的燃料。
思路:yy一下发现一些瓶子中能给出的最少的燃料就是这些瓶子容量的gcd,于是就把所有的瓶子容量的约数弄出来,找到最大的大于k个的就是答案。
CODE:
#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>#define MAX 10000010using namespace std; int cnt,k;int arr[MAX],total; inline void Work(int x){ for(int i = 1;; ++i) { if(i * i >= x) { arr[++total] = i; return ; } if(x % i == 0) arr[++total] = i,arr[++total] = x / i; }} int main(){ cin >> cnt >> k; for(int x,i = 1; i <= cnt; ++i) { scanf("%d",&x); Work(x); } sort(arr + 1,arr + total + 1); int temp = 1; for(int i = total - 1; i; --i) { if(arr[i] == arr[i + 1]) ++temp; else { if(temp >= k) { cout << arr[i + 1] << endl; return 0; } temp = 1; } } return 0;}
0 0
- BZOJ 2257 JSOI 2009 瓶子和燃料 数学
- 【BZOJ 2257】【JSOI 2009】瓶子和燃料 【裴蜀定理】
- bzoj 2257 瓶子和燃料
- BZOJ 2257 JSOI2009 瓶子和燃料 数论
- BZOJ 2257 [Jsoi2009]瓶子和燃料
- BZOJ 2257: [Jsoi2009]瓶子和燃料
- BZOJ 2257 [Jsoi2009] 瓶子和燃料
- bzoj 2257: [Jsoi2009]瓶子和燃料
- bzoj 2257: [Jsoi2009]瓶子和燃料
- BZOJ 2257: [Jsoi2009]瓶子和燃料 数论
- bzoj 2257: [Jsoi2009]瓶子和燃料 裴蜀定理
- bzoj 2257: [Jsoi2009]瓶子和燃料 (gcd+map)
- bzoj 2257: [Jsoi2009]瓶子和燃料(裴蜀定理)
- BZOJ 2257: [Jsoi2009]瓶子和燃料 裴蜀定理
- BZOJ 2257 [Jsoi2009]瓶子和燃料 裴蜀定理
- 2257: [Jsoi2009]瓶子和燃料
- 2257: [Jsoi2009]瓶子和燃料
- 2257: [Jsoi2009]瓶子和燃料
- sicily1021-couples
- linux新手时常遇到的问题汇总
- 空间两直线间最短距离
- Find Peak Element
- Activity的一些相关属性总结
- BZOJ 2257 JSOI 2009 瓶子和燃料 数学
- SQL语句之replace
- android程序的相关问题记录(一键发送“说说”新浪微博,QQ空间等社交媒体)
- BintoHex二进制到十六进制(栈)
- c++学习笔记之字符串
- 行为模式之Iterator模式
- Intent的六大属性总结笔记
- 记小黑——统一SDK接入框架(类似棱镜和AnySDK)
- 矢量图形显示设备与像素显示设备区别