bzoj 2257: [Jsoi2009]瓶子和燃料【裴蜀定理+gcd】
2018-09-05 10:37
204 查看
裴蜀定理:若a,b是整数,且gcd(a,b)=d,那么对于任意的整数x,y,ax+by都一定是d的倍数,特别地,一定存在整数x,y,使ax+by=d成立。
所以最后能得到的最小燃料书就是gcd,所以直接对因数计数然后找最小的个数大于k的因数就是答案
#include<iostream> #include<cstdio> #include<map> using namespace std; const int N=1005; int n,k,a ,mx; map<int,int>s; int main() { scanf("%d%d",&n,&k); for(int i=1;i<=n;i++) { scanf("%d",&a[i]); mx=max(mx,a[i]); int j; for(j=1;j*j<a[i];j++) if(a[i]%j==0) { s[j]++; s[a[i]/j]++; } if(j*j==a[i]) s[j]++; } map<int,int>::iterator it=s.end(),jt=s.begin(); for(it--,jt--;it!=jt;it--) if(it->second>=k) { printf("%d\n",it->first); break; } return 0; }
相关文章推荐
- [BZOJ 2257][JSOI2009]瓶子和燃料 题解(GCD)
- bzoj 2257: [Jsoi2009]瓶子和燃料 (gcd+map)
- bzoj 2257: [Jsoi2009]瓶子和燃料
- bzoj2257 [Jsoi2009]瓶子和燃料
- BZOJ 2257 [Jsoi2009]瓶子和燃料 裴蜀定理
- [BZOJ2257][Jsoi2009]瓶子和燃料(数学)
- bzoj 2257: [Jsoi2009]瓶子和燃料(裴蜀定理)
- 【bzoj2257】【jsoi2009】【瓶子和燃料】【裴蜀定理】
- BZOJ2257: [Jsoi2009]瓶子和燃料
- BZOJ 2257: [Jsoi2009]瓶子和燃料
- bzoj 2257[Jsoi2009]瓶子和燃料 数论/裴蜀定理
- BZOJ 2257: [Jsoi2009]瓶子和燃料 裴蜀定理
- BZOJ 2257 JSOI2009 瓶子和燃料 数论
- 【bzoj2257】【JSOI2009】瓶子和燃料
- bzoj 2257: [Jsoi2009]瓶子和燃料
- BZOJ 2257 [Jsoi2009] 瓶子和燃料
- BZOJ 2257: [Jsoi2009]瓶子和燃料 裴蜀定理
- bzoj 2257: [Jsoi2009]瓶子和燃料 裴蜀定理
- bzoj 2257: [Jsoi2009]瓶子和燃料
- BZOJ 2257: [Jsoi2009]瓶子和燃料 数论