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希望找
到最优的瓶子组合,使得火星人给出尽量多的燃料。

Soluiton

本质是一个加加减减。

选k个数,根据裴属定理,x1*a1+...+xk*ak=gcd(..)有解。

而,这个gcd一定是最小的解。

所以,题意是:给N个数,n<=1000,取k个数,使最大公约数最大。

这样考虑

把每个数试除法分解约数。

把所有数的约数放进factor数组里。

排序。

从大到小枚举。

第一个连续出现>=k次的约数就是选择的这k个数的最大公约数。

因为最大公约数也是约数。

每个数同样的约数只算了一次。

那么,从大到小第一次k个约数,一定能找到这个k个运来的数,而且因为最大,所以就是最大公约数了。

代码:

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=;
int n,k;
int ans;
int a[N];
int fac[N*];
int tot;
void divi(int x){
int tmp=x;
for(int i=;i*i<=x;i++){
if(x%i==) {
fac[++tot]=i;if(i!=x/i) fac[++tot]=x/i;
}
}
}
int main(){
cin>>n>>k;int y;
for(int i=;i<=n;i++){
cin>>y;divi(y);
}
sort(fac+,fac+tot+);
int cnt=;
for(int i=tot;i;i--){
int tmp=fac[i];
while(fac[i]==tmp&&i) {
cnt++;i--;
}
i++;
if(cnt>=k){
printf("%d",fac[i]);return ;
}
cnt=;
}
}

最新文章

  1. Hbase学习连接-数据导入
  2. 如果用css的border属性画一个三角形
  3. (。・・)ノ~java常见错误
  4. abcd
  5. SqlServer分区表概述(转载)
  6. z/os上的tar和gzip
  7. 主机、虚拟机、开发板(u-boot)之间的连接 - ping测试
  8. openstack libtray
  9. Milk Patterns
  10. js的深拷贝和浅拷贝
  11. C++运算符详解问题详解
  12. 一个Python小白5个小时爬虫经历 【续】
  13. 解决Highcharts 5.0.7,IE8下bar类型图表无法显示的问题
  14. 【转】JS容器拖拽效果,并通过cookie保存拖拽各容器的所在位置
  15. python笔记:#008#变量的命名
  16. KVO讲解
  17. Final发布 文案+美工展示
  18. 解决easyui combobox不能默认选中
  19. Objective-C语法之扩展(Extension)的使用
  20. (1)Oracle基础--用户与登录

热门文章

  1. PHP序列化serialize()和反序列化unserialize()
  2. katalon系列八:Katalon Studio图片识别
  3. cookie,session傻傻分不清楚?
  4. JVM自动内存管理机制--读这篇就GO了
  5. Python多重赋值
  6. python3 ,AttributeError: module &#39;tensorflow&#39; has no attribute &#39;merge_summary&#39;
  7. 【探路者】团队中的每一次感动——Alpha版
  8. RIGHT-BICEP测试第二次
  9. 按Right-BICEP要求的对任务二的测试用例
  10. winform界面之固定大小随dpi