题目链接:strongbox(英文版)

结论1:如果x是密码,则gcd(x,n)是密码

结论2:如果x,y是密码,那么gcd(x,y)是密码,反之则不是

约束条件:

1.密码集合A中存在很多,所以尽量小

2.对于任何1<=j<k,不能整除a[j](否则a[j]也是密码)

3.根据结论1,集合中的两个数为a[k],gcd(a[k],n),存在a[k]|gcd(a[k],n)。

思路:

如果x为密码,则密码为x,2x,3x,4x,......,所以x尽量小,n/x即为答案

同时a[k]的因子集合包含密码集合,里面也含有其它不是密码的数

其中gcd(a[i],a[k])不属于,被gcd(a[i],a[k])整除的同样不是,剩下的为密码

寻找里面最小的密码,得到答案

实现方法

计算a[k]==gcd(a[k],n),枚举法寻找a[k]的因子,存在数组q里面

去除gcd(a[i],a[k])的因数(包含本身和它的因子)

寻找最小密码x,da答案为n/x

//代码

#include<cstdio>
#include<algorithm>
using namespace std;
#define ll long long
ll n,tot;
int k,ans;
ll a[250005],q[250005],f[250005];
ll gcd(ll a,ll b)
{return b? gcd(b,a%b):a;
}
int main()
{//freopen("strong.in","r",stdin);//freopen("strong.out","w",stdout);scanf("%lld%d",&n,&k);for(ll i=1; i<=k; ++i)scanf("%lld",&a[i]);a[k]=gcd(a[k],n);for(int i=1; i<k; ++i)a[i]=gcd(a[i],a[k]);//计算寻找因子for(ll i=1; i*i<=a[k]; ++i)if(a[k]%i==0){q[++tot]=i;if(i*i!=a[k])q[++tot]=a[k]/i;}sort(q+1,q+tot+1);//去除gcd(a[k],a[i])的因数for(int i=1; i<k; ++i)f[lower_bound(q+1,q+tot+1,a[i])-q]=1;for(ll int i=1; i<=tot; ++i)if(f[i]){for(int j=1; j<i; ++j)if(q[i]%q[j]==0)f[j]=1;}//寻找最小密码for(ans=1; f[ans]; ++ans);printf("%lld",n/q[ans]);return 0;
}

strongbox-数论相关推荐

  1. BZOJ2277[Poi2011]Strongbox——数论

    题目描述 Byteasar is a famous safe-cracker, who renounced his criminal activity and got into testing and ...

  2. BZOJ 2277 Poi2011 Strongbox 数论

    题目大意:给定n和k个整数,求mod n加法下的群G的一个子群G',满足a[1]~a[k-1]都不在群中而a[k]在群中 首先易证G'一定是一个循环群 证明:显然若a在群中则a的逆元在群中 那么我们就 ...

  3. BZOJ2277 [Poi2011]Strongbox 【数论】

    题目链接 BZOJ2277 题解 orz太难了 如果一个数\(x\)是密码,那么所有\((x,n)\)的倍数都是密码 如果两个数\(x,y\)是密码,那么所有\((x,y)\)的倍数都是密码 那么如果 ...

  4. 数论(一)——素数,GCD,LCM

    这是一个数论系列:) 一.素数 ×费马小定理 Theorem: 设 p 是一个素数,a 是一个整数且不是 p 的倍数,那么 很遗憾,费马小定理的逆定理是不成立的.对 a = 2,满足的非素数 n 是存 ...

  5. 【数论总结】-----励志写好一篇数论总结↖(^ω^)↗//正在施工...未完工

    近期学了学数论,来写一波总结吧. (1)排列组合,比较基础的东西了吧.//只写个概念吧,(逃: 概念:就是从n个不同元素中,任取m(m≤n)个元素并成一组,叫做从n个不同元素中取出m个元素的一个组合: ...

  6. 解题报告(十八)数论题目泛做(Codeforces 难度:2000 ~ 3000 + )

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 繁凡出品的全新系列:解题报告系列 -- 超高质量算法题单,配套我写的超高质量的题解和代码,题目难度不一 ...

  7. 《算法竞赛中的初等数论》(五)正文 0x50筛法(ACM / OI / MO)(十五万字符数论书)

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 写在最前面:本文部分内容来自网上各大博客或是各类图书,由我个人整理,增加些许见解,仅做学习交流使用,无 ...

  8. 《算法竞赛中的初等数论》(四)正文 0x40反演(ACM / OI / MO)(十五万字符数论书)

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 写在最前面:本文部分内容来自网上各大博客或是各类图书,由我个人整理,增加些许见解,仅做学习交流使用,无 ...

  9. P6271 [湖北省队互测2014]一个人的数论(莫比乌斯反演,拉格朗日插值)

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 P6271 [湖北省队互测2014]一个人的数论(莫比乌斯反演,拉格朗日插值) Problem Sol ...

  10. 《算法竞赛中的初等数论》(三)正文 0x30 积性函数(ACM / OI / MO)(十五万字符数论书)

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 写在最前面:本文部分内容来自网上各大博客或是各类图书,由我个人整理,增加些许见解,仅做学习交流使用,无 ...

最新文章

  1. 超越Facebook、谷歌、微软,百度发布全球首个百亿参数对话预训练生成模型PLATO-XL...
  2. 利用async和await异步操作解决node.js里面fs模块异步读写,同步结果的问题
  3. [BZOJ 1879][SDOI 2009]Bill的挑战 题解(状压DP)
  4. 004_JDK的String类对Comparable接口的实现
  5. 中南大学计算机085403,What?这些个专业改考数一英一了!
  6. 用cookie实现叶卡的记忆功能
  7. 酷比魔方iwork8刷机shell_酷比魔方IWORK8旗舰版(I1-T)双系统刷机教程.doc
  8. winscp连接Linux步骤
  9. 微软windows10易升_Windows10把软件设置为始终以管理员身份运行(适用于单个软件)...
  10. echar地图使用小总结
  11. 怎么锁定excel部分单元格不被修改
  12. 查看ubuntu版本号
  13. 制作可启动DOS优盘
  14. 计算机视觉领域推荐期刊和会议评分标准
  15. 锐捷网络2010年程序员C语言试题
  16. textarea 行数限制_在一个TextArea中如何限制行数和字符数
  17. 《乔布斯:遗失的访谈》 观看笔记
  18. 使用Xcode插件加速开发
  19. 学习笔记(1):150讲轻松搞定Python网络爬虫-爬虫介绍(资料在第一节中下载)
  20. 痞子衡嵌入式:ARM Cortex-M文件那些事(8)- 镜像文件(.bin/.hex/.s19)

热门文章

  1. 【华人学者风采】刘欢 亚利桑那州立大学
  2. 什么是模块化?模块化有哪些优缺点
  3. jsDOM编程-小球在盒子里来回撞击
  4. 中学生用计算机的警句,初中励志名言名句大全,适合中学生的名言警句,初中生励志名言格言...
  5. 关于js的回调函数,同步回调与异步回调
  6. C语言基于FOC控制算法和STM32主控芯片的双路直流无刷电机控制器源码
  7. 【初入前端】第三课 课前预习
  8. 数据库系统概论笔记——第一章
  9. Java线程池的实际应用:一根木棍 随机分割三段 组成三角形的概率 多线程解决
  10. Git-Gitlab中如何删除项目