传送门1
传送门2
写在前面:纯洁的污,还要恍然大污
思路:
(感觉数论一段时间不做就找不到感觉了呢)
题意就是求x2≡1(mod n)x^2≡1(mod n)在[0,n]上所有的整数解
方程可化为(x−1)(x+1)≡0(mod n)(x-1)(x+1)≡0(mod n)
即n|(x−1)(x+1)n|(x-1)(x+1)
令n=a∗bn=a*b,其中a,b就是n的正整数因子。则对于一个可行的x来说,一定至少有1对(a,b)满足
a|(x−1),b|(x+1)a|(x-1),b|(x+1)或a|(x+1),b|(x−1)a|(x+1),b|(x-1)
反过来说也是成立的
(至于证明,我们可以n与(x+1)(x-1)质因数分解,则{n的质因子}⊆{x+1的质因子}∪{x-1的质因子},而n的因子是(1,n)或质因子乘起来的,所以一定能找出一对符合条件的(a,b))
这样一来我们就比较容易地做到两件事,一是说明当n=1时无解(不可能有一个自然数是0的因子),否则一定有解(当x=n-1时,令a,b为1,n即可),二是O(√n)O(√n)筛出n的因子,然后通过枚举每个因子的倍数p,然后判断p是否能为x-1或x+1,最后得出方程的解
注意:
1.可能会有重复解,所以用map判重
2.选取大于√n的因子做判断,不然会T
3.x=1是任何n的解(n>1)
代码:

#include<bits/stdc++.h>
#include<set>
using namespace std;
int n;
int a[50000],ans[1000000];
map<int,bool>mp;
main()
{scanf("%d",&n);if (n==1) printf("None"),exit(0);ans[++ans[0]]=1;for (int i=1;i<=sqrt(n);i++)if (n%i==0) a[++a[0]]=n/i;  for (int i=1;i<=a[0];i++)for (int j=a[i];j<=n;j+=a[i]){if ((j+2)%(n/a[i])==0&&j+1<=n&&!mp[j+1])mp[j+1]=1,ans[++ans[0]]=j+1;if ((j-2)%(n/a[i])==0&&j-1>=0&&!mp[j-1])mp[j-1]=1,ans[++ans[0]]=j-1;}sort(ans+1,ans+ans[0]+1);for (int i=1;i<=ans[0];i++) printf("%d\n",ans[i]);
}

【BZOJ1406】【codevs2478】密码箱,数论练习相关推荐

  1. BZOJ1406: [AHOI2007]密码箱 数论

    Description 在一次偶然的情况下,小可可得到了一个密码箱,听说里面藏着一份古代流传下来的藏宝图,只要能破解密码就能打开箱子,而箱子背面刻着的古代图标,就是对密码的提示.经过艰苦的破译,小可可 ...

  2. BZOJ 1406 密码箱(数论)

    很简洁的题目.求出x^2%n=1的所有x<=n的值. n<=2e9. 直接枚举x一定是超时的. 看看能不能化成有性质的式子. 有 (x+1)(x-1)%n==0,设n=a*b,那么一定有x ...

  3. 2019.5.summary

    2019.5.1 CF C. Prefix Sum Primes 感觉CF就是训练妳如何养成对题目强大的YY能力的QAQ 我们构造 如果只有一种,没辙,只能这样放 否则先放一个2,再放一个1 接下来把 ...

  4. P4296-[AHOI2007]密码箱【数论】

    正题 题目链接:https://www.luogu.com.cn/problem/P4296 题目大意 一个数字nnn,求有多少个x<nx<nx<n使得x2%n=1x^2\%n=1x ...

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

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

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

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

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

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

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

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

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

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

最新文章

  1. Cortex-M3启动深度解析
  2. [case19]聊聊eureka的TaskDispatcher
  3. 验证电话号码是否正确
  4. 从零开始学习docker(十九)Swarm mode 集群服务间通信--RoutingMesh
  5. eclipse在ubuntu13.04下崩溃crash
  6. 天生对数字不敏感的人,如何提升对数据的敏感度?
  7. 自动化设置chrome禁止显示图片及恢复
  8. CIO:权大、钱多、但难干 | 凌云时刻
  9. 用极域课堂管理系统软件批量格式化D盘
  10. ubuntu上安装使用冰封王座
  11. 内存颗粒位宽和容量_DDR4内存终极解析(一)--DDR4内存颗粒
  12. 对于图片倾斜做矫正处理
  13. java学习笔记第三部分
  14. 3D游戏与编程——UI系统
  15. 面试官:你连RESTful都不知道我怎么敢要你?
  16. DRM系列(7)之drmModeAtomicCommit底层流程
  17. 猫狗二分类实战(PyTorch)
  18. win7桌面图标显示不正常解决
  19. MySQL的安装(超详细,附教程、安装包)
  20. 图片查看插件-magnify

热门文章

  1. 【华为云技术分享】《跟唐老师学习云网络》— Ping喂报文
  2. 【Python3网络爬虫开发实战】 3.2-使用requests
  3. 【华为云实战开发】2.Docker镜像部署怎么玩才酷炫?
  4. 贝叶斯思维 统计建模的python_贝叶斯思维统计建模的Python学习法
  5. Visio中图进行任意区域进行颜色填充
  6. LaTeX youngtab包——组合数学中棋盘格的绘制
  7. 推荐系统之---如何理解低秩矩阵?
  8. 地平线后端开发实习面经
  9. labelImg重新开启工具箱(栏)
  10. uniapp使用android studio进行调试的配置