BZOJ 2277 Poi2011 Strongbox 数论
题目大意:给定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 数论相关推荐
- 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个在 ...
- 【BZOJ】2277: [Poi2011]Strongbox
题意 有一个密码箱,\(0\)到\(n-1\)中的某些整数是它的密码.如果\(a\)和\(b\)都是它的密码,那么\((a+b)%n\)也是它的密码(\(a,b\)可以相等).某人试了\(k\)次密码 ...
- BZOJ2277[Poi2011]Strongbox——数论
题目描述 Byteasar is a famous safe-cracker, who renounced his criminal activity and got into testing and ...
- BZOJ2277 [Poi2011]Strongbox 【数论】
题目链接 BZOJ2277 题解 orz太难了 如果一个数\(x\)是密码,那么所有\((x,n)\)的倍数都是密码 如果两个数\(x,y\)是密码,那么所有\((x,y)\)的倍数都是密码 那么如果 ...
- BZOJ 2277 strongbox (gcd)
题意 有一个密码箱,0到n-1中的某些整数是它的密码. 且满足,如果a和b都是它的密码,那么(a+b)%n也是它的密码(a,b可以相等) 某人试了k次密码,前k-1次都失败了,最后一次成功了. 问:该 ...
- 【刷题】BZOJ 4176 Lucas的数论
Description 去年的Lucas非常喜欢数论题,但是一年以后的Lucas却不那么喜欢了. 在整理以前的试题时,发现了这样一道题目"求Sigma(f(i)),其中1<=i< ...
- bzoj 2216: [Poi2011]Lightning Conductor(DP决策单调性)
2216: [Poi2011]Lightning Conductor Time Limit: 25 Sec Memory Limit: 64 MB Submit: 1292 Solved: 443 ...
- bzoj 2217 [Poi2011]Lollipop 乱搞 贪心
2217: [Poi2011]Lollipop Time Limit: 15 Sec Memory Limit: 64 MBSec Special Judge Submit: 383 Solve ...
- BZOJ.2212.[POI2011]Tree Rotations(线段树合并)
题目链接 \(Description\) 给定一棵n个叶子的二叉树,每个叶节点有权值(1<=ai<=n).可以任意的交换两棵子树.问最后顺序遍历树得到的叶子权值序列中,最少的逆序对数是多少 ...
最新文章
- Android studio 混淆打包 proguard-rules.pro 与 bulid.gradle 配置总结
- 59 javabean的创建
- 【2016.11.16】HTML学习笔记
- pat乙级 1014 java_pat乙级1014 福尔摩斯的约会
- configure 查看默认安装路径
- 人有多大懒,才有多大闲 (评论『卓有成效的程序员』)
- 自定义Button按钮
- C中得到4号错误(中断),怎么办
- 深度学习之目标检测 第3章 传统目标检测方法基本流程
- ES6新特性总结之解构赋值和字符串模板
- 手机视频水印去不掉有马赛克
- 不知道怎么压缩图片大小?分享2个压缩小技巧
- 用ZeroTier搭建属于自己的虚拟局域网(VLAN)
- 【python练习】摘苹果题
- mantis系统php版本,PHP_mantis安装、配置和使用中的问题小结,开发需要,安装mantis(Mantis Bug Tra - phpStudy...
- dw网页制作教程百度云盘_详细的dw网页制作教程_dw中图片轮播
- win7底部任务栏还原方法
- iPhone卡在一个界面出不来,怎么办?
- VirtualBox安装macOS Big Sur
- 爬虫ip代理对高匿代理ip的重要性
热门文章
- VSC/SMC(十四)——全局快速Terminal滑模控制(含程序模型)
- 用 justify-content 属性设置子元素两端对齐
- SMP、COW、PVP、MPP计算机相关
- iOS开发 --- 开发工具
- 小型RTK/LITE RTK/Mini RTK CR202(9P+4G+imu) 惯导 实现高精度厘米级定位,输出组合导航位置,定位数据回传服务器
- 金仓数据库 KingbaseES SQL 语言参考手册 (11. SQL语句:ABORT 到 ALTER INDEX)
- freeMaker 三目(三元)表达式
- 算法设计与分析: 6-8 圆排列问题
- 大华视屏监控对接集成
- 走近棒球运动·底特律老虎队·MLB棒球创造营