[P3518]strongbox
原题链接
题面是英文的
总之可以用谷歌翻译糊弄一下
要解决这个题一共需要两个结论
结论一:
如果x是密码
那么GCD(x , n)也是密码
结论二:
如果x , y是密码
那么GCD(x , y)也是密码
具体推导过程可以参考一下vinci的博客
那么
设密码集合A
输入的密码为a[1…k]
A中所有数的GCD为x
如果A中有比x小的数y
那么GCD(x , y)< x
不符合设定
所以x是A中最小的数
则A中的数为x , 2x , 3x……
约束条件:
由结论一可得
A中有两个数为a[k] , GCD(n , a[k])
所以x%GCD( n , a[k] )=0
且由题意可得
对于任何1<=j< k
x % a[j] ! = 0
#include<algorithm>
#include<cstdio>
#define LL long long
using namespace std;LL n,k,i,a[500000],tot,q[1000005],f[1000005],ans,j;LL gcd(LL x,LL y)
{return y?gcd(y,x%y):x;
}int main()
{scanf("%lld%lld",&n,&k);for(i=1;i<=k;i++)scanf("%lld",&a[i]);a[k]=gcd(a[k],n);for(i=1;i<k;i++)a[i]=gcd(a[i],a[k]);for(i=1;i*i<=a[k];i++){if(a[k]%i==0){tot++;q[tot]=i;if(i*i!=a[k]) {tot++;q[tot]=a[k]/i; }}}sort(q+1,q+tot+1);for(i=1;i<k;i++)f[lower_bound(q+1,q+tot+1,a[i])-q]=1;for(i=1;i<=tot;i++)if(f[i])for(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;
}
[P3518]strongbox相关推荐
- P3518 [POI2011]strongbox
https://www.luogu.org/problem/show?pid=3518 问题描述: 有一个密码箱,0 到 n-1中的某些整数是它的密码,且满足:如果a和b都是它的密码,那么(a+b)% ...
- Android Strongbox( Android Ready SE)
Android Ready SE介绍 Android ready SE Alliance: 链接 GOOGLE成立 Android Ready SE Alliance 技术联盟,用于 SE 安全芯片标 ...
- BZOJ2277[Poi2011]Strongbox——数论
题目描述 Byteasar is a famous safe-cracker, who renounced his criminal activity and got into testing and ...
- WebDAV之葫芦儿·派盘 + Strongbox
Strongbox 支持WebDAV方式连接葫芦儿派盘. Strongbox 是一款用于安全存储所有密码并由一个主密码保护的应用程序.支持开源的 Password Safe 和 KeePass 格式. ...
- Strongbox和Weaver
说在前面 本篇文章主要是介绍Strongbox和Weaver的技术架构,其中包含的一些技术细节只是实现方式中的一种,对于不同的硬件环境或者技术策略,还需要OEM和SE发行商之间协定具体的技术流程.这篇 ...
- 例1.1-2 Strongbox
问题描述: 有一个密码箱,0到n-1中的某些整数是他的密码.条件:如果a b都是他的密码,则(a+b)%n也是他的密码. 某人试了k次密码均失败了,最后一次成功了. 问该密码箱最多有多少种不同的密码? ...
- 【BZOJ】2277: [Poi2011]Strongbox
题意 有一个密码箱,\(0\)到\(n-1\)中的某些整数是它的密码.如果\(a\)和\(b\)都是它的密码,那么\((a+b)%n\)也是它的密码(\(a,b\)可以相等).某人试了\(k\)次密码 ...
- 解题:POI 2011 Strongbox
首先洛谷的题面十分的劝退(至少对我这个菜鸡来说是这样),我来解释一下(原来的英文题面): 有一个有若干个密码(每个密码都可以开箱子)的密码箱,密码是在$0$到$n-1$的数中的,且所有的密码都满足一个 ...
- BZOJ 2277 Poi2011 Strongbox
题目大意:一个集合A,包含了0~n-1这n个数.另有一个集合B,满足: 1.B是A的子集. 2.如果a.b均在B中,则(a+b)%n也在B中(a=b亦可) 给出k个数ai,前k-1个不在B中,第k个在 ...
最新文章
- Perfect Security (01字典树删除点)
- 今晚,圆桌讨论Transformer跨界CV任务
- SAP MM MIGO Cancellation可以用于冲销上次冲销而产生的物料凭证
- 【机器视觉】 gen_measure_rectangle2算子
- Linux下配置简单的图形桌面环境
- 特斯拉第四季度生产超30.5万台车 全年交付近百万台
- python bootstrap安装_python + django + bootstrap + uWSGI + nginx 环境搭建
- 《区块链原理、设计与应用》一3.8 本章小结
- Windows Server 2008 R2无密码共享设置
- BZOJ_2243 [SDOI2011]染色 【树链剖分+线段树】
- testlink界面优化_Testlink 太老了,测试用例管理有没有什么好工具推荐?
- 易筋SpringBoot 2.1 | 第九篇:SpringBoot使用Redis内存数据库
- delphi连接access数据库的步骤(详细教程)
- 湖南大学计算机与通信学院李燕,基于SVM的面部表情分析
- mysql 创建表指定时区_mysql解决时区相关问题
- 揭秘李佳琪直播带货绝招,学会它让你直播带货效益翻倍。
- 组件‘mscomctl.ocx‘或它的一个依赖项没有正确注册:一个文件丢失或无效
- 学习大数据要掌握哪些语言?哪些必备知识和技能呢?
- J2EE基础教程(4):struts框架(视频笔记)
- python随机森林变量重要性_利用随机森林对特征重要性进行评估