bzoj 3667 Rabin-Miller算法】的更多相关文章

Input 第一行:CAS,代表数据组数(不大于350),以下CAS行,每行一个数字,保证在64位长整形范围内,并且没有负数.你需要对于每个数字:第一,检验是否是质数,是质数就输出Prime 第二,如果不是质数,输出它最大的质因子是哪个. Output 第一行CAS(CAS<=350,代表测试数据的组数) 以下CAS行:每行一个数字,保证是在64位长整形范围内的正数. 对于每组测试数据:输出Prime,代表它是质数,或者输出它最大的质因子,代表它是和数 Sample Input 6 2 13 1…
题目链接 Pollard_Rho:http://blog.csdn.net/thy_asdf/article/details/51347390 #include<cstdio> #include<cctype> #include<algorithm> #define gc() getchar() const int p[]={2,3,5,7,11,13,17,19}; typedef long long LL; LL Ans; inline LL read() { LL…
#include<iostream> #include<cstdio> #include<algorithm> #include<cstring> #include<cmath> #define ll long long using namespace std; int n; ll x,mx; ll gcd(ll a,ll b) { if(!b)return a; return gcd(b,a%b); } i64 mul(i64 a,i64 b,…
Miller-Rabin模板 #include<iostream> #include<cstdio> #include<algorithm> using namespace std; long long T,n,mx; long long mul(long long a,long long b,long long mod) { long long nw=a*b-(long long)((long double)a/mod*b+1e-8)*mod; return nw&l…
说实话,我知道每一步都干啥,但我完全不知道为啥这么做,也不知道为什么是正确的,反正会用就行了~ #include <cmath> #include <cstdio> #include <algorithm> #define ll long long #define ull unsigned long long #define setIO(s) freopen(s".in","r",stdin) using namespace st…
莫队算法,具体的可以看10年莫涛的论文. 大题思路就是假设对于区间l,r我们有了一个答案,那么对于区间l,r+1,我们 可以暴力的转移一个答案,那么对于区间l1,r1和区间l2,r2,需要暴力处理 的部分就是|r1-r2|+|l1-l2|如果将l看成x,r看成r,得到的暴力部分就是manhattan距离 那么我们将所有的询问,构成一张二维图,可以从一个点转移到另一个点,且总manhattan距离 尽可能的小,所以可以建立一颗manhattan mst,这样的话就可以得到最优的转移,但是实际来说…
题意 有n个画框和n幅画.若第i幅画和第j个画框配对,则有平凡度Aij和违和度Bij,一种配对方案的总体不和谐度为∑Aij*∑Bij.求通过搭配能得到的最小不和谐度是多少. n <= 70. 分析 这题是最小乘积最大权匹配裸题,其做法类似最小乘积生成树. 每个方案可以表示为二维平面上的点,答案必然在下凸壳上. 具体要怎么找呢?其实是有一个这样的方法:找出横坐标或纵坐标最小的点a和b,找点的方法可以用KM. 找到这两个点就可以分治下去做了,找到离直线ab距离最大的点(当然要在直线ab下方). 列出…
论O(1)快速乘和O(logn)快速乘的差距-. //By SiriusRen #include <cstdio> #include <algorithm> using namespace std; typedef long long ll; ll shai[10]={2,3,5,7,11,13,17,19,23,29}; ll mul(ll a,ll b,ll p){ ll d=((long double)a/p*b+1e-8); ll res=a*b-d*p; res=res&…
BZOJ 3667: Rabin-Miller算法 Time Limit: 60 Sec  Memory Limit: 512 MBSubmit: 1044  Solved: 322[Submit][Status][Discuss] Description   Input 第一行:CAS,代表数据组数(不大于350),以下CAS行,每行一个数字,保证在64位长整形范围内,并且没有负数.你需要对于每个数字:第一,检验是否是质数,是质数就输出Prime 第二,如果不是质数,输出它最大的质因子是哪个.…
一些前置知识可以看一下我的联赛前数学知识 如何判断一个数是否为质数 方法一:试除法 扫描\(2\sim \sqrt{n}\)之间的所有整数,依次检查它们能否整除\(n\),若都不能整除,则\(n\)是质数,否则\(n\)是合数. 代码 bool is_prime(int n){ if(n<2) return 0; int m=sqrt(n); for(int i=2;i<=m;i++){ if(n%i==0) return 0; } return 1; } 方法二.线性筛 用 \(O(n)\)…