题目大意:给定n和k个整数,求mod n加法下的群G的一个子群G',满足a[1]~a[k-1]都不在群中而a[k]在群中

首先易证G'一定是一个循环群

证明:显然若a在群中则a的逆元在群中

那么我们就有了减法运算

由群的封闭性可得若a和b都在群中则gcd(a,b)一定在群中

不妨设g为G'中所有元素的gcd 那么群G''={0,g,2g,...}一定是G'的一个子群

由于G'-G''中的所有元素均不是g的倍数,故G'∩(G'-G'')为空 G'=G''

由此可得G'是以g为最小生成元的一个循环子群 大小为n/g

上面都是废话

总之我们现在就要找到一个数g,使得g|n且g|a[k],且对于任意1<=i<=k-1,g不是a[i]的约数

这个MS没有什么办法直接做

我们发现10^14以内的数约数个数最多只有17280个

因此我们将a[1]~a[k-1]中所有的数对n取gcd,排序去重,这样k的规模就减小到了17280

然后枚举gcd(n,a[k])的所有约数,暴力验证,取最小的g就是结果

时间复杂度O(√n+klogn+17280^2)

卡爆了

#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>
#define M 250250
using namespace std;
int k,tot;
long long n,ans,a[M];
void Check(long long x)
{int i;for(i=1;i<=tot;i++)if(a[i]%x==0)return ;ans=min(ans,x);
}
int main()
{int i;cin>>n>>k;ans=n;for(i=1;i<=k;i++){#ifdef ONLINE_JUDGEscanf("%lld",&a[i]);#elsescanf("%I64d",&a[i]);#endifa[i]=__gcd(n,a[i]);}sort(a+1,a+k);for(i=1;i<k;i++)if(i==k+1||a[i]!=a[i+1])a[++tot]=a[i];for(i=1;(long long)i*i<=a[k];i++)if(a[k]%i==0){Check(i);Check(a[k]/i);}cout<<n/ans<<endl;return 0;
}

BZOJ 2277 Poi2011 Strongbox 数论相关推荐

  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个在 ...

  2. 【BZOJ】2277: [Poi2011]Strongbox

    题意 有一个密码箱,\(0\)到\(n-1\)中的某些整数是它的密码.如果\(a\)和\(b\)都是它的密码,那么\((a+b)%n\)也是它的密码(\(a,b\)可以相等).某人试了\(k\)次密码 ...

  3. BZOJ2277[Poi2011]Strongbox——数论

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

  4. BZOJ2277 [Poi2011]Strongbox 【数论】

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

  5. BZOJ 2277 strongbox (gcd)

    题意 有一个密码箱,0到n-1中的某些整数是它的密码. 且满足,如果a和b都是它的密码,那么(a+b)%n也是它的密码(a,b可以相等) 某人试了k次密码,前k-1次都失败了,最后一次成功了. 问:该 ...

  6. 【刷题】BZOJ 4176 Lucas的数论

    Description 去年的Lucas非常喜欢数论题,但是一年以后的Lucas却不那么喜欢了. 在整理以前的试题时,发现了这样一道题目"求Sigma(f(i)),其中1<=i< ...

  7. bzoj 2216: [Poi2011]Lightning Conductor(DP决策单调性)

    2216: [Poi2011]Lightning Conductor Time Limit: 25 Sec  Memory Limit: 64 MB Submit: 1292  Solved: 443 ...

  8. bzoj 2217 [Poi2011]Lollipop 乱搞 贪心

    2217: [Poi2011]Lollipop Time Limit: 15 Sec  Memory Limit: 64 MBSec  Special Judge Submit: 383  Solve ...

  9. BZOJ.2212.[POI2011]Tree Rotations(线段树合并)

    题目链接 \(Description\) 给定一棵n个叶子的二叉树,每个叶节点有权值(1<=ai<=n).可以任意的交换两棵子树.问最后顺序遍历树得到的叶子权值序列中,最少的逆序对数是多少 ...

最新文章

  1. Android studio 混淆打包 proguard-rules.pro 与 bulid.gradle 配置总结
  2. 59 javabean的创建
  3. 【2016.11.16】HTML学习笔记
  4. pat乙级 1014 java_pat乙级1014 福尔摩斯的约会
  5. configure 查看默认安装路径
  6. 人有多大懒,才有多大闲 (评论『卓有成效的程序员』)
  7. 自定义Button按钮
  8. C中得到4号错误(中断),怎么办
  9. 深度学习之目标检测 第3章 传统目标检测方法基本流程
  10. ES6新特性总结之解构赋值和字符串模板
  11. 手机视频水印去不掉有马赛克
  12. 不知道怎么压缩图片大小?分享2个压缩小技巧
  13. 用ZeroTier搭建属于自己的虚拟局域网(VLAN)
  14. 【python练习】摘苹果题
  15. mantis系统php版本,PHP_mantis安装、配置和使用中的问题小结,开发需要,安装mantis(Mantis Bug Tra - phpStudy...
  16. dw网页制作教程百度云盘_详细的dw网页制作教程_dw中图片轮播
  17. win7底部任务栏还原方法
  18. iPhone卡在一个界面出不来,怎么办?
  19. VirtualBox安装macOS Big Sur
  20. 爬虫ip代理对高匿代理ip的重要性

热门文章

  1. VSC/SMC(十四)——全局快速Terminal滑模控制(含程序模型)
  2. 用 justify-content 属性设置子元素两端对齐
  3. SMP、COW、PVP、MPP计算机相关
  4. iOS开发 --- 开发工具
  5. 小型RTK/LITE RTK/Mini RTK CR202(9P+4G+imu) 惯导 实现高精度厘米级定位,输出组合导航位置,定位数据回传服务器
  6. 金仓数据库 KingbaseES SQL 语言参考手册 (11. SQL语句:ABORT 到 ALTER INDEX)
  7. freeMaker 三目(三元)表达式
  8. 算法设计与分析: 6-8 圆排列问题
  9. 大华视屏监控对接集成
  10. 走近棒球运动·底特律老虎队·MLB棒球创造营