Pro

QwQ

Sol

手推几组数据就可以发现:答案即为k个数的gcd

所以爆搜出k个出,再暴力求gcd可以过部分数据……

正解好像和裴蜀定理有关:把n个数的因子都求出来,找出满足因子个数大于等于k的最大因子即为答案。

Code

爆搜代码

#include<iostream>
#include<cstdio>
using namespace std;int n , k , v[1005] , stack[1005] , top , ans;
inline int mymax(int a , int b) { return a>b?a:b; }inline int gcd(int x , int y) {while(y) {int t = x%y;x = y;y = t;}return x;
}int qgcd() {int res = gcd(stack[1] , stack[2]);for(int i=3; i<=top; i++)res = gcd(res , stack[i]);return res;
}void dfs(int pre , int use , int aim) {if(use==aim) {ans = mymax(ans , qgcd());return ;}for(int i=pre+1; i<=n; i++) {stack[++top] = v[i];dfs(i , use+1 , aim);top--;}
}int main() {scanf("%d%d",&n,&k);for(int i=1; i<=n; i++)scanf("%d",&v[i]);dfs(0 , 0 , k);printf("%d",ans);return 0;
}

正解代码

#include<iostream>
#include<cstdio>
#include<cmath>
#include<algorithm>
using namespace std;int n , k , num[1000005] , top , cnt = 1;void sol(int x) {for(int i=1; i<=sqrt(x); i++) {if(x%i==0) {num[++top] = i;if(i*i!=x)num[++top] = x/i;}}
}int main() {scanf("%d%d",&n,&k);for(int i=1; i<=n; i++) {int x;scanf("%d",&x);sol(x);}sort(num+1 , num+top+1);for(int i=top-1; i; i--) {if(num[i]==num[i+1])cnt++;elsecnt = 1;if(cnt>=k) {printf("%d",num[i]);return 0;}}return 0;
}

[JSOI2009]瓶子和燃料【数论】相关推荐

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

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

  2. [luogu4571 JSOI2009] 瓶子和燃料 (数论)

    传送门 Solution 题目说的很迷,但可以发现两个瓶子互相倒最少是容积的gcd 那么题目就转化为求其中选k个瓶子gcd的最大值,这个可以分解因数,枚举因数得到 Code //By Menteur_ ...

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

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

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

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

  5. BZOJ 2257: [Jsoi2009]瓶子和燃料

    题目大意: 有n个数,选择k个数,最大化这些数通过加减能得到的最小的正整数. 题解: 这些数通过加减能得到的最小的数为他们的最大公约数. 题目要求n个数字中选择k个使得他们的最大公约数最大. 枚举所有 ...

  6. bzoj2257瓶子与燃料——最大公约数

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=2257 可以知道最终能够导出的燃料一定是瓶子容量的gcd的倍数,所以此题转化为求n个数中k个数 ...

  7. (裴蜀定理)ax + by = m 有解,当且仅当 m 是 gcd(a,b) 的倍数

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

  8. 2019.4.summary

    2019.4.1 BZOJ1061: [Noi2008]志愿者招募 真心有点难QAQ https://www.byvoid.com/zhs/blog/noi-2008-employee 看void爷的 ...

  9. CodeChef DGCD Dynamic GCD

    CodeChef题面 Time limit 210 ms Code length Limit //内存限制也不说一下,真是的-- 50000 B OS Linux Language limit C, ...

最新文章

  1. 自然语言处理(NLP)历史中的6个主要时期你知道吗?
  2. 常用的CSS命名规则
  3. UA MATH571B 试验设计VI 随机效应与混合效应4 裂区设计
  4. PAT甲级1142 Maximal Clique :[C++题解]图论、最大团、枚举
  5. Java web—Cookie与Session对象
  6. 如何打造智能化的员工出行方式?阿里自研出行神器首次曝光
  7. 深入剖析nginx时间缓存
  8. Android 蹲坑的疑难杂症集锦一
  9. HLS:@E Simulation failed SIGSEGV
  10. Exchange server 2007 出现“0x8004010F”错误的解决办法
  11. vue window.location.href 返回页面不刷新_前端框架vue中的keep-alive总结实践
  12. puml绘制思维导图_免费在线思维导图神器 简单又漂亮 比Wodrd好用很多
  13. ffmpeg 命令实现h264文件 与 mp4 文件的转换
  14. Python 列表元素的排序
  15. 附表和附注_现金流量表附注怎么填?现金流量表附表的编制
  16. Paper-9 精读VAIL (2019 ICLR)
  17. Linux SPI设备驱动
  18. Oracle12c DBCA方式创建数据库
  19. 网站开启https后很慢_网站开启https后地址栏安全锁灰色或黄色叹号
  20. 记一次无意间发现某学校图书检索系统的变量覆盖漏洞

热门文章

  1. 6.解决循环依赖的问题
  2. ChromeTimeline
  3. 中小企业什么OA办公系统适用呢?
  4. .htaccess文件玩转Rewrite
  5. CString char BSTR 转换
  6. asp.net验证空间详说
  7. 老男孩教育每日一题-第75天-linux无法上网或联网怎么办?
  8. WEB测试到移动测试的转换
  9. 【leetcode】91. Decode Ways A-Z的字母表示1-26的数字,反向破解多少种字符串的可能性...
  10. mac java jni_Mac OS上编译JNI的动态库