strongbox-数论
题目链接: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-数论相关推荐
- BZOJ2277[Poi2011]Strongbox——数论
题目描述 Byteasar is a famous safe-cracker, who renounced his criminal activity and got into testing and ...
- BZOJ 2277 Poi2011 Strongbox 数论
题目大意:给定n和k个整数,求mod n加法下的群G的一个子群G',满足a[1]~a[k-1]都不在群中而a[k]在群中 首先易证G'一定是一个循环群 证明:显然若a在群中则a的逆元在群中 那么我们就 ...
- BZOJ2277 [Poi2011]Strongbox 【数论】
题目链接 BZOJ2277 题解 orz太难了 如果一个数\(x\)是密码,那么所有\((x,n)\)的倍数都是密码 如果两个数\(x,y\)是密码,那么所有\((x,y)\)的倍数都是密码 那么如果 ...
- 数论(一)——素数,GCD,LCM
这是一个数论系列:) 一.素数 ×费马小定理 Theorem: 设 p 是一个素数,a 是一个整数且不是 p 的倍数,那么 很遗憾,费马小定理的逆定理是不成立的.对 a = 2,满足的非素数 n 是存 ...
- 【数论总结】-----励志写好一篇数论总结↖(^ω^)↗//正在施工...未完工
近期学了学数论,来写一波总结吧. (1)排列组合,比较基础的东西了吧.//只写个概念吧,(逃: 概念:就是从n个不同元素中,任取m(m≤n)个元素并成一组,叫做从n个不同元素中取出m个元素的一个组合: ...
- 解题报告(十八)数论题目泛做(Codeforces 难度:2000 ~ 3000 + )
整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 繁凡出品的全新系列:解题报告系列 -- 超高质量算法题单,配套我写的超高质量的题解和代码,题目难度不一 ...
- 《算法竞赛中的初等数论》(五)正文 0x50筛法(ACM / OI / MO)(十五万字符数论书)
整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 写在最前面:本文部分内容来自网上各大博客或是各类图书,由我个人整理,增加些许见解,仅做学习交流使用,无 ...
- 《算法竞赛中的初等数论》(四)正文 0x40反演(ACM / OI / MO)(十五万字符数论书)
整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 写在最前面:本文部分内容来自网上各大博客或是各类图书,由我个人整理,增加些许见解,仅做学习交流使用,无 ...
- P6271 [湖北省队互测2014]一个人的数论(莫比乌斯反演,拉格朗日插值)
整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 P6271 [湖北省队互测2014]一个人的数论(莫比乌斯反演,拉格朗日插值) Problem Sol ...
- 《算法竞赛中的初等数论》(三)正文 0x30 积性函数(ACM / OI / MO)(十五万字符数论书)
整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 写在最前面:本文部分内容来自网上各大博客或是各类图书,由我个人整理,增加些许见解,仅做学习交流使用,无 ...
最新文章
- 超越Facebook、谷歌、微软,百度发布全球首个百亿参数对话预训练生成模型PLATO-XL...
- 利用async和await异步操作解决node.js里面fs模块异步读写,同步结果的问题
- [BZOJ 1879][SDOI 2009]Bill的挑战 题解(状压DP)
- 004_JDK的String类对Comparable接口的实现
- 中南大学计算机085403,What?这些个专业改考数一英一了!
- 用cookie实现叶卡的记忆功能
- 酷比魔方iwork8刷机shell_酷比魔方IWORK8旗舰版(I1-T)双系统刷机教程.doc
- winscp连接Linux步骤
- 微软windows10易升_Windows10把软件设置为始终以管理员身份运行(适用于单个软件)...
- echar地图使用小总结
- 怎么锁定excel部分单元格不被修改
- 查看ubuntu版本号
- 制作可启动DOS优盘
- 计算机视觉领域推荐期刊和会议评分标准
- 锐捷网络2010年程序员C语言试题
- textarea 行数限制_在一个TextArea中如何限制行数和字符数
- 《乔布斯:遗失的访谈》 观看笔记
- 使用Xcode插件加速开发
- 学习笔记(1):150讲轻松搞定Python网络爬虫-爬虫介绍(资料在第一节中下载)
- 痞子衡嵌入式:ARM Cortex-M文件那些事(8)- 镜像文件(.bin/.hex/.s19)