NOI数论姿势瞎总结(Pi也没有)
Miller-Rabin素数检测
费马小定理:没人不会吧。
二次探测:如果\(n\)是质数,\(x^2 \equiv 1\ (\mod n)\)的解只有\(x \equiv 1\)或\(x \equiv n-1\ (\mod n)\)。
实现方法:
选取一些质数。\(n\)不超过\(3 \times 10^{18}\)的时候只需要\(2 \sim 23\),\(n\)在unsigned long long范围内时只需要\(2 \sim 37\)。对于每个质数:
使用费马小定理的逆否定理检测。
此时,我们有\(p^{n-1} \equiv 1\ (\mod n)\),如果不出意外\(n\)是质数的话,根据二次探测定理,\(p^{\frac{n-1}{2}},p^{\frac{n-1}{4}}...\)在模意义下都应该为\(1\),直到一次取到\(n-1\)时规律消失。
所以我们可以倒序处理,根据第一次出现\(n-1\)的位置进行探测。
代码
int mi[9]={2,3,5,7,11,13,17,19,23};
inline LL qmul(LL x,LL y,LL mod){
LL z=(long double)x/mod*y+0.5;
return ((x*y-z*mod)%mod+mod)%mod;
}
inline LL qpow(LL x,LL y,LL mod){
LL ret=1,tt=x%mod;
while(y){
if(y&1)ret=qmul(ret,tt,mod);
tt=qmul(tt,tt,mod);
y>>=1;
}
return ret;
}
inline bool miller_rabin(LL x){
if(x==1)return false;
rin(i,0,8)if(x==mi[i])return true;
rin(i,0,8)if(x%mi[i]==0)return false;
LL a=x-1;int b=0;
while(!(a&1))a>>=1,++b;
rin(i,0,8){
if(qpow(mi[i],x-1,x)!=1)return false;
LL now=qpow(mi[i],a,x);
if(now==1||now==x-1)continue;
rin(j,1,b-1){
now=qmul(now,now,x);
if(now==x-1)break;
if(j==b-1)return false;
}
}
return true;
}
低于线性复杂度的积性函数的前缀和处理方法
看这篇:杜教筛&min_25筛复习
NOI数论姿势瞎总结(Pi也没有)的更多相关文章
- Codeforces Round #326 (Div. 2) B Duff in Love 简单数论 姿势涨
B. Duff in Love time limit per test 2 seconds memory limit per test 256 megabytes input standard inp ...
- 快速傅里叶变换与快速数论变换瞎学笔记$QwQ$
$umm$先预警下想入门$FFT$就不要康我滴学习笔记了,,, 就,我学习笔记基本上是我大概$get$之后通过写$blog$加强理解加深记忆这样儿的,有些姿势点我可能会直接$skip$什么的,所以对除 ...
- [LNOI] 相逢是问候 || 扩展欧拉函数+线段树
原题为2017六省联考的D1T3 给出一个序列,m次操作,模数p和参数c 操作分为两种: 1.将[l,r]区间内的每个数x变为\(c^x\) 2.求[l,r]区间内数的和%p 首先,我们要了解一些数论 ...
- BZOJ-1968 COMMON 约数研究 数论+奇怪的姿势
1968: [Ahoi2005]COMMON 约数研究 Time Limit: 1 Sec Memory Limit: 64 MB Submit: 1513 Solved: 1154 [Submit] ...
- 【NOI P模拟赛】华莱士CNHLS(容斥,数论分块)
题意 出题人吃华 莱 士拉肚子了,心情不好,于是出了一道题面简单的难题. 共 T T T 组数据,对正整数 n n n 求 F ( n ) = ∑ i = 1 n μ 2 ( i ) i F(n)=\ ...
- 【BZOJ 2005】【NOI 2010】能量采集 数论+容斥原理
这题设$f(i)$为$gcd(i,j)=x$的个数,根据容斥原理,我们只需减掉$f(i×2),f(i×3)\cdots$即可 那么这道题:$$ans=\sum_{i=1}^n(f(i)×((i-1)× ...
- UVA571Jugs题解--简单数论(其实是瞎搞)
题目链接 https://cn.vjudge.net/problem/UVA-571 分析 刚做了道倒水问题的题想看看能不能水二倍经验,结果发现了这道题 题意翻译:https://www.cnblog ...
- 7.12 NOI模拟赛 积性函数求和 数论基础变换 莫比乌斯反演
神题! 一眼powerful number 复习了一下+推半天. 可以发现G函数只能为\(\sum_{d}[d|x]d\) 不断的推 可以发现最后需要求很多块G函数的前缀和 发现只有\(\sqrt(n ...
- NOI 2019 省选模拟赛 T1【JZOJ6082】 染色问题(color) (多项式,数论优化)
题面 一根长为 n 的无色纸条,每个位置依次编号为 1,2,3,-,n ,m 次操作,第 i 次操作把纸条的一段区间 [l,r] (l <= r , l,r ∈ {1,2,3,-,n})涂成颜色 ...
随机推荐
- c++ 【递归算法】梵塔问题
一道递归水题,2话不说,直接放代码: #include<iostream> using namespace std; int k; void move(int m,char a,char ...
- VUE(下)
VUE(下) VUE指令 表单指令 数据的双向指令 v-model = "变量" model绑定的变量,控制的是表单元素的value值 普通表单元素用v-model直接绑定控制va ...
- C++ 对象构造顺序、构析函数、临时对象。
对象的构造顺序: 1.对于局部对象,构造顺序是根据程序执行流进行构造,从上到下. #include <stdio.h> class Test { int mi; public: Test( ...
- tomcat搭建webDav
工具准备: tomcat-8.0.53 前言:由于工作需要,希望自己搭建webdav服务端,刚开始用windowsServer 2012 R2版本自带的IIS服务器搭建,搭建好之后浏览器可以访问,但无 ...
- F12 开发人员工具中的控制台错误消息
使用此参考解释显示在 Internet Explorer 11 的控制台 和调试程序中的错误消息. 简介 使用 F12 开发人员工具进行调试时,错误消息(例如 EC7111 或 HTML1114)将显 ...
- Git复习(四)之解决冲突
解决冲突 合并分支往往也不是一帆风顺的 假设:我们从master创建了一个新的分支feature1更改了最后一行提交,我们切换到master分支也更改了最后一行提交,现在,master分支和featu ...
- django 中实现文件下载的3种方式
方法一:使用HttpResponse from django.shortcuts import HttpResponse def file_down(request): file=open('/hom ...
- whistle 前端工具之抓包利器
一.业务场景 前端本地开发的场景中,我们需要频繁的改动代码,并需要实时看到效果,并且在一些开发场景中,我们需要将特定的请求代理到特定的IP.本地文件等,所以使用fiddler或whistle等本地.真 ...
- CentOS7搭建FastDFS V5.11分布式文件系统(三)
1.测试 前面两篇博文已对FastDFS的安装和配置,做了比较详细的讲解.FastDFS的基础模块都搭好了,现在开始测试下载. 1.1 配置客户端 同样的,需要修改客户端的配置文件: /etc/fdf ...
- 外星人电脑出现the system is running in low graphics mode的解决方法
问题现象: 执行删除GCC5.4.0: sudo apt-get remove gcc gcc-5重启电脑后,就显示the system is running in low graphics mod ...