数论

【数论】【ex-BSGS】poj3243 Clever Y

吃可爱长大的小学妹 提交于 2020-02-23 07:37:23
用于求解高次同余方程A^x≡B(mod C),其中C不一定是素数。 http://blog.csdn.net/tsaid/article/details/7354716 这篇题解写得最好。 那啥,这题的坑点请去看discuss。 #include<cstdio> #include<cstring> #include<algorithm> #include<cmath> using namespace std; typedef long long ll; void exgcd(ll a,ll b,ll &d,ll &x,ll &y) { if(!b) { d=a; x=1; y=0; } else { exgcd(b,a%b,d,y,x); y-=x*(a/b); } } #define MAXN 100001 #define MOD 100003 struct HashTable { ll v[MAXN]; int __next[MAXN],first[MOD],en,a[MAXN]; void Insert(ll x,int J){ if(Find(x)!=-1){ return; } int o=x%MOD; v[en]=x; a[en]=J; __next[en]=first[o]; first[o]=en++; } int Find(ll x){ int o=x%MOD;

HDOJ题目分类

你。 提交于 2020-02-21 07:22:40
1001 整数求和 水题 1002 C语言实验题——两个数比较 水题 1003 1、2、3、4、5... 简单题 1004 渊子赛马 排序+贪心的方法归并 1005 Hero In Maze 广度搜索 1006 Redraiment猜想 数论:容斥定理 1007 童年生活二三事 递推题 1008 University 简单hash 1009 目标柏林 简单模拟题 1010 Rails 模拟题(堆栈) 1011 Box of Bricks 简单题 1012 IMMEDIATE DECODABILITY Huffman编码 1013 STAMPS 搜索or动态规划 1014 Border 模拟题 1015 Simple Arithmetics 高精度计算 1016 Shoot-out 博弈+状态压缩DP 1017 Tour Guide 1018 Card Trick 简单题 1019 Necklace Decomposition 贪心 1020 Crashing Robots 模拟题 1021 Electrical Outlets 简单题 1022 Watchdog 简单题 1023 Taxi Cab Scheme 图论:最小路径覆盖--->最大二分匹配 1024 Pseudo-random Numbers 数论 1025 Card Game Cheater 简单题 1026

Jean-Pierre Serre访问录

落花浮王杯 提交于 2020-02-17 23:52:23
问:是什么使您以数学为职业的? 答:我记得大概是从七、八岁时起喜欢数学的。在中学里, 我常做一些高年级的题目。那时,我寄宿于Nimes,与比我大的孩子住在一起,他们常常欺侮我,为了平抚他们,我就经常帮他们做数学作业。这是一种最好的训练。 我母亲是药剂师(父亲也是),并且喜欢数学。在她还是Montpellier大学的药剂学学生时,只是出于兴趣,选修了一年级的微积分课,且通过了考试。她精心保存了当年的微积分课本(如我没记错的话,是Fabry和Vogt写的 )。在我十四、十五岁时常翻看它们并学习其中的内容。我就是这样知道了导数、积分和级数等(我采用一种纯形式的方式----可以说是Euler风格: 我不喜欢也没弄懂ε和δ。那时,我一点也不知道做数学家可以谋生。只是到后来我才发现做数学也有报酬!我首先想到的是我将成为一个中学教师:这在我看来是自然的。于是,在十九岁时,我参加了高等师范学校的入学竞争考试并取得了成功。一进“高师”,事情就清楚了,中学教师并不是我要干的,我要的是从事研究的数学家。 问:您对其他学科,像物理或化学,是否有过兴趣? 答:对物理不怎么感兴趣,但对化学有兴趣。我说过,我双亲是药剂师,所以他们有很多化学药品和试管。我十五、十六岁时,在做数学之外,经常摆弄它们。我还读了父亲的化学书(我至今还留有一本很吸引人的Jacques Duclaux著的《胶体》(Les

数论_my_feeling

只愿长相守 提交于 2020-02-07 21:01:44
对于素数p: 如果p%4==1 则p是两个平方数的和。  如果余3,则不是。 三角数:前n项和,即3、6、 10 之类。 完全数:所有因数和为本身。例如 6,28,496. 若 p+2为素数,则城 其为孪生素数。 存在无限个p,使p+2 p+4为素数吗?这个问题的答案是不可能,因为总有一个余三。 本原勾股数组:(a,b,c) :a=st b=(s*s-t*t)/2; c=(s*s+t*t)/2; 对于n>2;不存在a^n+b^n==c^n 最大公约数即用gcd函数。 如果p|ab,则必然有p|a 或者 p|b 每一个数只有一种素数乘积。 同余式:++++++++++ 线性方程:+++++++++ 线性同余式:+++++++++++ 费马小定理:a^(p-1)==1(mod p) x^y mod p=x^(y % f(p))% p; 欧拉式:a^f(p)==1 mod p<=> gcd(a,p)==1//此时的p可以不为素数。 欧拉函数的求法:++++++++++++ 中国剩余定理:++++++++++ 先这样的,别的有力气再补充 来源: https://www.cnblogs.com/Ean1zhi/p/12274427.html

VJ数论专题AC代码临时保存

我的梦境 提交于 2020-02-05 11:55:47
//A #include<bits/stdc++.h> using namespace std; bool vis[1000010]; void Get_Prime() { int n = 1000010; int m = sqrt(n+0.5); memset(vis,0,sizeof(vis)); for(int i=2; i<=m; i++) if(!vis[i]) for(int j=i*i; j<=n; j+=i) vis[j] = 1; return ; } int Find(int n) { for(int i=n+1; ; i++) if(!vis[i]) return i; } int main() { Get_Prime(); int t,n,x; long long sum; scanf("%d",&t); for(int i=1; i<=t; i++) { scanf("%d",&n); sum = 0; while(n--) { scanf("%d",&x); sum += Find(x); } printf("Case %d: %lld Xukha\n",i,sum); } return 0; } 来源: https://www.cnblogs.com/sdutzxr/p/12262985.html

数论-求逆元

五迷三道 提交于 2020-02-03 22:28:33
求逆元: (m / q ) % x ,这里因为m / q 不一定为整数,所以构造一个新的式子: (m / q) % x = m * y % x, 这里的y就是要求的逆元 费马小定理加快速幂求逆元: 求法:原式变形为: 1 / q = y (%x)-> 1 = y * q(%x) -> 由于x是质数,gcd(q,x) == 1,所以满足费马小定理,-> 1 = q^(x-1) (%x)-> q^(x-1) = y * q (%x)-> y = q^(x-2) (%x)-> 所以:(m / q) % x = m * q ^ (x - 2) % x 1 #include <iostream> 2 using namespace std; 3 4 typedef long long LL; 5 6 int qmi(int a, int b, int c){ 7 LL res = 1; 8 while(b){ 9 if(b & 1) res = res * a % c; 10 a = a * (LL)a % c; 11 b >>= 1; 12 } 13 return res; 14 } 15 16 int main(){ 17 int n;cin >> n; 18 while(n --){ 19 int a, p;cin >> a >> p; 20 if(a % p == 0) cout <

hdu-1576 A/B解题报告(数论)(扩展欧几里得算法)

ぐ巨炮叔叔 提交于 2020-02-03 17:42:45
目录 题目描述 思路分析 完整代码 题目描述 题目: https://vjudge.net/problem/HDU-1576 大概意思:要求的是A/B 但是A他就给了A%9973的值n,然后要求(A/B)%9973。。初看起来有点懵。 思路分析 其实,我们在纸上演算一下就是这样: 其中:n、B已知,x和k为未知数。是不是很眼熟呢?这就是二元一次不定方程啦。剩下的就是用欧几里得算法算出结果,记得取余就是了。 这里再记个欧几里得算法模板: void extend_gcd ( ll a , ll b , ll & x , ll & y ) { if ( b == 0 ) { x = 1 ; y = 0 ; return ; } extend_gcd ( b , a % b , x , y ) ; int t = x ; x = y ; y = t - a / b * y ; } 再处理一下就能算出来了。注:模板只是算出来ax+by=gcd(a,b)形式的解。 重点:理解、记住模板 完整代码 # include <iostream> using namespace std ; typedef long long ll ; ll gcd ( ll a , ll b ) { return b == 0 ? a : gcd ( b , a % b ) ; } void extend_gcd (

数论-快速幂

爷,独闯天下 提交于 2020-02-03 13:15:10
快速幂:求 a^b % p 1 #include <iostream> 2 using namespace std; 3 4 typedef long long LL; 5 6 LL qmi(LL a, LL b, LL p){ 7 LL res = 1 % p; 8 while(b){ 9 if(b & 1)res = res * a % p; 10 a = a * a % p; 11 b >>= 1; 12 } 13 return res; 14 } View Code 来源: https://www.cnblogs.com/sxq-study/p/12255144.html

数论函数前缀和合集

帅比萌擦擦* 提交于 2020-01-30 01:25:19
01 - \(\sum\limits_{i=1}^{n} [gcd(i,m)=1]\) 索引:n以内与m互质的数的个数 求: \(\sum\limits_{i=1}^{n} [gcd(i,m)=1]\) 由 \(\sum\limits_{d|n}\mu(d)=[n=1]\) 得 \(\sum\limits_{i=1}^{n} \sum\limits_{d|gcd(i,m)}\mu(d)\) 交换求和顺序,得 \(\sum\limits_{d|m}\mu(d)\lfloor\frac{n}{d}\rfloor\) 注意到当d有平方因子的时候 \(\mu(d)=0\) ,那么求出 \(m\) 的所有的质因子然后容斥(其实莫比乌斯函数本身就代表容斥) 64位整数范围内的质因子不到20种,容斥的复杂度不超过1e6单次。 当n与m相等时, \(\varphi(n)=\sum\limits_{i=1}^{n} [gcd(i,n)=1]\) ,为欧拉函数的定义。 来源: https://www.cnblogs.com/KisekiPurin2019/p/12241952.html