![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
ACM_数论
yiqzq
人生如此复杂,机会多得像稠密图,我们没理由认输。尽管我们走不了最短路,但图仍是连通图,TLE之前,没有一个节点叫失败。
展开
-
数论基础之求逆元
方法一: 根据费马小定理,通过快速幂求解ll POW(int a, int b, int p) { ll ret = 1; while(b) { if(b & 1) ret = ret * a % p; a = a * a % p; b >>= 1; } return ret;}ll Fermat(ll a, ll原创 2018-04-29 20:24:02 · 264 阅读 · 0 评论 -
UVA 12169 Disgruntled Judge (扩展欧几里得)
原题地址:here题意:有333个整数x[1],a,bx[1],a,b x[1], a, b 满足递推式x[i]=(a∗x[i−1]+b)mod10001x[i]=(a∗x[i−1]+b)mod10001x[i]=(a*x[i-1]+b)mod 10001。由这个递推式计算出了长度为2T2T2T的数列,现在要求输入x[1],x[3],......x[2T−1]x[1],x[3],......x...原创 2018-08-28 22:57:27 · 174 阅读 · 0 评论 -
UVA-10375 Choose and divide (唯一分解定理)
原题地址:here题意:给出 p,q,r,sp,q,r,sp ,q, r, s这四个数,C(m,n)=m!(m−n)!n!C(m,n)=m!(m−n)!n!C(m, n) = \frac{m!}{(m − n)! n!} ,让你求解 C(p,q)C(r,s)C(p,q)C(r,s) \frac{C(p, q)} {C(r, s)} ,即两个阶乘相除。思路:如果直接求阶乘的话,又...原创 2018-08-28 23:43:32 · 167 阅读 · 0 评论 -
Codeforces Round #511 (Div. 2) C. Enlarge GCD (思维题)
原题地址:http://codeforces.com/contest/1047/problem/C题意:给出n个数字,现在询问你最少需要删除多少个数字使得剩余数字的gcd会增大,如果不能不能就输出-1思路:我们考虑先求出所有数字的gcd,然后再让每一个数字除这个gcd,那么除完之后的序列的gcd必定为1.那么如果这些数字全部是1,那么必然不能使得gcd变大.否则的话,我们只需要记录每一个数字的...原创 2018-09-23 12:54:46 · 225 阅读 · 0 评论 -
HDU5584 LCM Walk(找规律+数论)
原题地址:http://acm.hdu.edu.cn/showproblem.php?pid=5584题意:给你一个点(x,y)(x,y)(x,y),你每次可以向前走zzz,zzz为xxx和yyy的最小公倍数,即走到(x+z,y)(x+z,y)(x+z,y)或者(x,y+z)(x,y+z)(x,y+z),现在给你一个点(x,y)(x,y)(x,y)问你可能的出发点有几个(包括自己)思路:具体可...原创 2018-10-08 10:16:41 · 211 阅读 · 0 评论 -
HDU 5976 Detachment(数学+结论)
原题地址:http://acm.hdu.edu.cn/showproblem.php?pid=5976参考博客:https://blog.csdn.net/qq_34374664/article/details/53466435题意:将一个数x拆成a1+a2+a3+……,ai不等于aj,求最大的a1a2a3*……思路:这里面会用到一个结论,满足题意的要求的数字一定是若干段连续的数字,然后只需...原创 2018-10-14 19:36:55 · 241 阅读 · 0 评论 -
HDU 4810 Wall Painting (组合数学+位运算)
原题地址:http://acm.hdu.edu.cn/showproblem.php?pid=4810题意:给出n个数,求取k个数的异或和是多少,k从1到n,分别输出n个答案;思路:由于这个是异或和,那么我们可以从这里下手,我们把n个数全都看成二进制的形式,那么当前某一位会被计算进总和,当且仅当在所取的k个数中,这一位为1(二进制形式下)的数量是奇数那么最后答案就是求一个组合数,乘上当前这一...原创 2018-10-10 21:03:56 · 236 阅读 · 0 评论 -
101350 G - Snake Rana Gym (容斥)
原题地址:http://codeforces.com/gym/101350/problem/G题意:给出一个n∗mn*mn∗m的矩阵,然后给出kkk个炸弹,求所有不包含炸弹的子矩阵数量。思路:首先我们要知道如果没有炸弹的初始答案。枚举每一个起点,我们就可以知道以这个点为起点的子矩阵数量,所以ans=n∗m∗(1+n)∗(1+m)4\frac{n*m*(1+n)*(1+m)}44n∗m∗(1+n...原创 2019-04-06 16:33:02 · 159 阅读 · 0 评论 -
Gym - 101982B Coprime Integers (莫比乌斯裸题)
原题地址:http://codeforces.com/gym/101982参考博客:https://blog.csdn.net/jk_chen_acmer/article/details/82016719这篇博客主要是讲述一些莫比乌斯的知识。关于莫比乌斯函数莫比乌斯函数其实就只是一个系数,它的取值如下:1)莫比乌斯函数μ(n)的定义域是N2)μ(1)=1μ(1)=1μ(1)=13)当...原创 2019-04-08 19:35:12 · 315 阅读 · 0 评论 -
求组合数的几种方法总结
杨辉三角求组合数时间复杂度O(n2)O(n2)O(n^2) ,空间复杂度O(n2)O(n2)O(n^2)ll C[N][N];//C[n][m]就是C(n,m)void init(int N) { for (int i = 0; i < N; i ++) { C[i][0] = C[i][i] = 1; for (int j = 1; j ...原创 2018-08-20 20:57:44 · 331 阅读 · 0 评论 -
UVA - 11582 Colossal Fibonacci Numbers! (数论取模)
原题地址:here题意:输入两个非负整数a,ba,ba,b和正整数n(0<=a,b<=264,1<=n<=1000)n(0<=a,b<=264,1<=n<=1000)n(0f(ab)f(ab)f(a^b)除以nnn的余数,其中f(0)=0,f(1)=1,f(0)=0,f(1)=1,f(0)=0,f(1)=1,当i>=0i>=0i>=0...原创 2018-08-28 00:25:47 · 156 阅读 · 0 评论 -
关于求最大公约数gcd的一些证明
辗转相除法的证明 设两数为a、b(b<a),求它们最大公约数的步骤如下:用b除a,得a=bq+r(0≤r<b)(q是这个除法的商)。若r=0,则b是a和b的最大公约数。若r≠0,则继续考虑。 首先,应该明白的一点是任何 a 和 b 的公约数都是 r 的公约数。要想证明这一点,就要考虑把 r 写成 r=a-bq。现在,如果 a 和 b 有一个公约数 d,而且设 a=sd , b=td, 那么 r转载 2017-12-18 14:27:14 · 484 阅读 · 0 评论 -
Codeforces Round #489 (Div. 2) B. Nastya Studies Informatics (数论)
原题地址:http://codeforces.com/contest/992/problem/B 题意:给出四个数字l,r,x,y.问你存在多少对(a,b) 使得gcd(a,b)=x,lcm=(a,b)=y,并且 l&lt;=x,y&lt;=y(并且l,r,x,y 的范围都是 1e9).思路:一开始想法就是很显然x*y==a*b 。然后看了数据范围很明显在1秒内会T。 那么我们可以这么分析...原创 2018-06-19 20:44:17 · 231 阅读 · 0 评论 -
Codeforces Round #489 (Div. 2) C. Nastya and a Wardrobe (数学推公式)
原题地址:http://codeforces.com/contest/992/problem/C、题意:给出一个n,k,表示初始拥有n元钱,时间为k年。然后每一年你都有50%几率金钱翻倍,还有50%几率金钱翻倍后减1.然后k年之后,你金钱会100%翻倍。问你k年后,可以期望拥有多少钱。思路:可以说是推公式找规律了。 现在假设你有n元钱。(下面的结果都是先假设k年后不翻倍的) 那么1年后...原创 2018-06-20 01:29:13 · 386 阅读 · 0 评论 -
51 nod 1113(矩阵快速幂模板)
```struct mat {//定义矩阵结构体 ll m[maxn][maxn];};mat operator * (mat a, mat b) {//定义矩阵乘法 mat ans; ll x = 0; for(int i = 0; i < n; i++) { for(int j = 0; j < n; j++) { ...原创 2018-07-24 10:21:21 · 152 阅读 · 0 评论 -
Gym - 101652P B - Fear Factoring (数学题)
原题地址:http://codeforces.com/gym/101652/attachments可以参考这篇除法分块博客https://www.cnblogs.com/Tony-Double-Sky/p/9490077.html下面是我的代码以及一些注释#include <bits/stdc++.h>#include <cmath>#include &l...原创 2018-08-16 23:13:20 · 422 阅读 · 0 评论 -
FZU - 2301 H - Chosen by god (组合数学)
原题地址:http://acm.fzu.edu.cn/problem.php?pid=2301题意:有n次攻击回合,每个回合的攻击有一点伤害,但是可能攻击到敌方无限血的英雄,也可能攻击到敌方的一个血量为m的小兵,问在n次攻击回合内把敌方小兵杀死的概率为多少?答案对1e9+7取模。组合数数学公式,首先总共有2n2n2^n的组合方法,然后要造成m点伤害及以上,所以就是Cmn+Cm+1n+Cm+...原创 2018-08-26 18:07:10 · 403 阅读 · 0 评论 -
FZU - 2303 Mind control (组合数学推公式)
原题地址:http://acm.fzu.edu.cn/problem.php?pid=2303 题意:有N个人,N-1个人都有一个追随者且追随者关系为链状(即为一条长度为N的链),有M个蛋糕,随机的分配给M个人(每个人最多只能得到1个),分配给某个人就能得到这个人以及其追随者的信任,问信任的期望值为多少,假设结果为x/yx/yx/y的形式,输出为x∗y−1,y∗y−1x∗y−1,y∗y−1x*y...原创 2018-08-26 21:10:12 · 301 阅读 · 0 评论 -
HDU - 1576 A/B (扩展欧几里得应用)
原题地址:http://acm.hdu.edu.cn/showproblem.php?pid=1576思路: (1) 由题可知:读入的是n和B,且gcd(B,9973) = 1 ; (2)假设(A/B)%9973 = k ; 所以 A/B = k + 9973*x —&gt; A = Bk + Bx*9973 ; 且n = A ...原创 2018-08-26 22:43:29 · 195 阅读 · 0 评论 -
Codeforces Round #572 (Div. 2) E. Count Pairs (套路+数论)
原题地址:https://codeforces.com/contest/1189/problem/E思路:一个思维题,由于n有3e5,所以枚举是不可行的.因此需要转换.我们可以考虑对于左右两边同时乘上(ai−aj)(a_i-a_j)(ai−aj),那么式子经过转换之后就变成了ai4a_i^4ai4 −aj4≡k∗(ai−aj)- a_j^4 \equiv k*(a_i-a_j)−aj4≡...原创 2019-07-09 16:29:57 · 163 阅读 · 0 评论