一开始真没想出解法。。。后来发现那么水。。。。

2257: [Jsoi2009]瓶子和燃料
Time Limit: 10 Sec Memory Limit: 128 MB
Submit: 970 Solved: 577
[Submit][Status][Discuss]

Description
jyy就一直想着尽快回地球,可惜他飞船的燃料不够了。
有一天他又去向火星人要燃料,这次火星人答应了,要jyy用飞船上的瓶子来换。jyy
的飞船上共有 N个瓶子(1<=N<=1000) ,经过协商,火星人只要其中的K 个 。 jyy
将 K个瓶子交给火星人之后,火星人用它们装一些燃料给 jyy。所有的瓶子都没有刻度,只
在瓶口标注了容量,第i个瓶子的容量为Vi(Vi 为整数,并且满足1<=Vi<=1000000000 ) 。
火星人比较吝啬,他们并不会把所有的瓶子都装满燃料。他们拿到瓶子后,会跑到燃料
库里鼓捣一通,弄出一小点燃料来交差。jyy当然知道他们会来这一手,于是事先了解了火
星人鼓捣的具体内容。火星人在燃料库里只会做如下的3种操作:1、将某个瓶子装满燃料;
2、将某个瓶子中的燃料全部倒回燃料库;3、将燃料从瓶子a倒向瓶子b,直到瓶子b满
或者瓶子a空。燃料倾倒过程中的损耗可以忽略。火星人拿出的燃料,当然是这些操作能
得到的最小正体积。
jyy知道,对于不同的瓶子组合,火星人可能会被迫给出不同体积的燃料。jyy希望找
到最优的瓶子组合,使得火星人给出尽量多的燃料。

Input
第1行:2个整数N,K,
第2..N 行:每行1个整数,第i+1 行的整数为Vi

Output
仅1行,一个整数,表示火星人给出燃料的最大值。

Sample Input
3 2
3
4
4

Sample Output
4

HINT
选择第2 个瓶子和第 个瓶子,火星人被迫会给出4 体积的容量。

Source

首先是裴蜀定理:
若a,b是整数,且(a,b)=d,那么对于任意的整数x,y,ax+by都一定是d的倍数,特别地,一定存在整数x,y,使ax+by=d成立。
所以结果一定是gcd。那么分解因数,扫描一遍找到最大的,且数量>=k(m)的因数,即为答案

代码:

#include<iostream>
#include<algorithm>
#include<cstdio>
#include<cstring>
#include<cmath>
using namespace std;
int read()
{int x=0,f=1;char ch=getchar();while (ch<'0' || ch>'9') {if (ch=='-') f=-1; ch=getchar();}while (ch>='0' && ch<='9') {x=x*10+ch-'0'; ch=getchar();}return x*f;
}int n,m;
int yz[10000010];
int cnt=0,num;void work(int x)
{for (int i=1; i<=sqrt(x); i++)if (x%i==0) {yz[++cnt]=i;if (i!=x/i) yz[++cnt]=x/i;}
}int main()
{n=read(),m=read();for (int i=1; i<=n; i++) {int x=read();work(x);}sort(yz+1,yz+cnt+1);num=1;for (int i=cnt; i>=1; i--){if (yz[i]==yz[i+1]) {num++;if (num==m) {printf("%d\n",yz[i+1]);break;}}else  num=1;}return 0;
}

转载于:https://www.cnblogs.com/DaD3zZ-Beyonder/p/5346193.html

BZOJ-2257 瓶子和燃料 分解因数+数论方面乱搞(裴蜀定理)相关推荐

  1. BZOJ 2257: [Jsoi2009]瓶子和燃料【数论:裴蜀定理】

    2257: [Jsoi2009]瓶子和燃料 Time Limit: 10 Sec  Memory Limit: 128 MB Submit: 1326  Solved: 815 [Submit][St ...

  2. bzoj 2257[Jsoi2009]瓶子和燃料 数论/裴蜀定理

    题目 Description jyy就一直想着尽快回地球,可惜他飞船的燃料不够了. 有一天他又去向火星人要燃料,这次火星人答应了,要jyy用飞船上的瓶子来换.jyy 的飞船上共有 N个瓶子(1< ...

  3. bzoj 2257: [Jsoi2009]瓶子和燃料(裴蜀定理)

    2257: [Jsoi2009]瓶子和燃料 Time Limit: 10 Sec  Memory Limit: 128 MB Submit: 1342  Solved: 823 [Submit][St ...

  4. 【裴蜀定理】BZOJ 1441 MIN

    P4549 [模板]裴蜀定理 这是一道bzoj的权限题,同时又是一道luogu的模板题 在标题上写模板不是很好, 决定放bzoj的名字来撑撑场面 bzoj: 裴蜀定理:dalao题解 显然就很优秀ov ...

  5. 裴蜀定理详解+例题: BZOJ 1441 MIN

    在数论中,裴蜀定理是一个关于最大公约数(或最大公约式)的定理 在数论中,裴蜀定理是一个关于最大公约数(或最大公约式)的定理.裴蜀定理得名于法国数学家艾蒂安·裴蜀,说明了对任何整数a.b和它们的最大公约 ...

  6. bzoj 1441: Min 裴蜀定理

    题目: 给出\(n\)个数\((A_1, ... ,A_n)\)现求一组整数序列\((X_1, ... X_n)\)使得\(S=A_1*X_1+ ...+ A_n*X_n > 0\),且\(S\ ...

  7. [BZOJ 1441]Min(裴蜀定理)

    Description 给出n个数(A1...An)现求一组整数序列(X1...Xn)使得S=A1*X1+...An*Xn>0,且S的值最小 Solution 裴蜀定理: 显然gcd(a,b)| ...

  8. 【ZOJ - 2955】Interesting Dart Game(背包,结论,裴蜀定理,数论)

    题干: Recently, Dearboy buys a dart for his dormitory, but neither Dearboy nor his roommate knows how ...

  9. Bzoj 1926: [Sdoi2010]粟粟的书架(二分答案+乱搞+主席树)

    1926: [Sdoi2010]粟粟的书架 Time Limit: 30 Sec Memory Limit: 552 MB Description 幸福幼儿园 B29 班的粟粟是一个聪明机灵.乖巧可爱 ...

  10. ACM数论 裴蜀定理(贝祖定理)

    一.内容定义 「裴蜀定理」,又称贝祖定理(Bézout's lemma).是一个关于最大公约数的定理.其内容定义为:对于不全为零的任意整数 a 和 b,记二者的最大公约数为 g 即 gcd(a,b) ...

最新文章

  1. python编的游戏可以直接玩吗_怎么用python开发游戏?
  2. Linux下自动检测USB热插拔
  3. 清华大学刘知远教授新作,图神经网络最佳解锁方式 | 送书福利
  4. SAP Leonardo平台机器学习API的一些错误处理机制
  5. html标记ruby,html5 ruby标签的定义及使用方法详解(内有实例介绍)
  6. SIP应答代码【ZT】
  7. 微信群接口(开发思路)
  8. 3-JS-数据类型-数组
  9. pathinfo 伪静态 详细解析PATH_INFO 和 ORIG_PATH_INFO技术分享
  10. kerberos的 kdc_设置Kerberos版本5 KDC以使用AES加密
  11. linux第一周总结
  12. 我的世界局域网游戏环境搭建
  13. 逆向某视频直播软件,破解收费观看
  14. nutch java_Nutch:用Java调用,而不是命令行?
  15. 手把手教你音乐服务器搭建
  16. 基于C语言的可靠数据传输协议的设计与实现
  17. 基础题库:6 打印ASCII码
  18. CV实战项目--人脸考勤
  19. 已知方位角和仰角求(单位)方向向量
  20. P2P--如何让下载的人越多速度越快

热门文章

  1. 小议jQuery插件开发
  2. 利用HTML5开发Android笔记(中篇)
  3. 数据切分——MySql表分区概述
  4. maven工程的多环境配置方案(profile)
  5. ★大脑的9大未解之谜
  6. Android 微信分享信息
  7. 功能选中jquery实现全选反选功能
  8. .NET Framework版本解析
  9. 阿里云CDN+OSS完成图片加速
  10. [Microsoft][ODBC Microsoft Access Driver] 参数不足,期待是 1