数论
文章平均质量分 57
henucm
那就再努力一点吧
展开
-
牛客练习赛53 B.美味果冻 分块
传送门题意:中文题意很好理解思路:我们将 转换成 如何证明这步转化正确呢?对于i=1,有j=1对于i=2,有j=1,2。。。对于i=n,有j=1,2,...,n因此如果我们反过来枚举j的话可以发现,某个i出现的前提就是i≥j,①得证。还有一个问题,为什么要反过来枚举j呢?因为原来的角度入手的话, 是考虑 是 的因子,但变成枚举j之后, 就变成考虑i是j的倍数...原创 2019-10-19 18:09:21 · 303 阅读 · 0 评论 -
hdu 6608 Fansblog 威尔逊定理+大数阶乘取模
传送门题意:给出一个质数P,找出小于P的最大的质数N,求出N的阶乘模P。(P∈[1e10,1e14])思路:威尔逊定理:一个数n若是质数, 则有 (n−1) ! ≡ n−1mod n. 于是可以先令ans=p−1, 再对p−1到q的数对p求逆元。p到q之间的距离不会超过300,Miller Robin大素数 判断可以找到最近的素数。#include<cstdio>#in...原创 2019-10-17 17:41:52 · 345 阅读 · 0 评论 -
2019牛客暑期多校训练营(第九场)C-Inversions of all permutations
传送门题意:求以一个序列的所有排列的逆序数为指数,b为底数的和。那么给定一个序列,就要先求逆序数,拿示例1来说,我们要求的是 ,这个形式并不好,我们尝试分组一下,变成 (记为 1 式),这个形式就很顺眼了,但是这有个前提,是这些数字没有重复。那么有重复又怎么办呢,那当然是去重了,假如给定的数字是1,2, 2,那么得到的答案应该是(记为 2 式),与上面作对比,发现少了 b+1这一项,说明...原创 2019-10-17 17:19:02 · 121 阅读 · 0 评论 -
Miller Robin大素数判定
首先是2^63以内可以用的算法,用Miller_Rabin素数测试#include<cstdio>#include<iostream>#include<cstdlib>#include<cstring>#include<ctime>#include<cmath>using namespace std; ...原创 2019-10-17 15:16:20 · 521 阅读 · 1 评论 -
斐波那契数列 寻求mod n 循环节 模板
原博主注意前两项是0 1 还是 1 1#include <iostream>#include <string.h>#include <algorithm>#include <stdio.h>#include <math.h>using namespace std;typedef unsigned long long...原创 2019-10-16 19:19:56 · 259 阅读 · 0 评论 -
2019牛客暑期多校训练营(第九场)A.The power of Fibonacci(循环节)
传送门思路嗯~ o(* ̄▽ ̄*)o 然后 我发现有个模板专门用来求斐波那契数列模一个数的循环节是多少。传送门#include<bits/stdc++.h>#define ll long long#define LL long longusing namespace std;const int l1=768;const int l2=7812500;const...原创 2019-10-16 19:12:18 · 112 阅读 · 0 评论 -
欧拉降幂 a^b%c ʕ •ᴥ•ʔ
DescriptionGiven A,B,C, You should quickly calculate the result of A^B mod C. (1<=A,C<=1000000000,1<=B<=10^1000000).InputThere are multiply testcases. Each testcase, there is one ...原创 2018-09-16 16:16:01 · 461 阅读 · 0 评论 -
焦作赛区网络预赛-I Give Candies 欧拉降幂 ʕ •ᴥ•ʔ
There areNNchildren in kindergarten. Miss Li bought themNNcandies. To make the process more interesting, Miss Li comes up with the rule: All the children line up according to their student number...原创 2018-09-16 16:43:45 · 120 阅读 · 0 评论 -
Codeforces Round #592 (Div. 2) C
传送门题意:解两个方程。思路:首先一些简单的情况特判一下就行了。 重点解释一下为什么搜索d次:因为在这里可以推导一下,y * d = p - w * x,那么,我们现在想得到一个合法的y是不是要让p - w * x是一个d的倍数?那么假如它现在不是d的倍数,我们是不是可以对x不断的减去,那么(p - w * x) % d的值是不是想要让它为0。而每次的变化量实际上就是w,gcd(w, d...原创 2019-10-16 11:33:57 · 122 阅读 · 0 评论 -
牛牛的幂运算
传送门还是一道不错的题的。思路#include<iostream>#include<algorithm>#include<cmath>#include<cstdio>#include<cstring>#define ll long longusing namespace std;const int ...原创 2019-10-13 23:06:11 · 482 阅读 · 0 评论 -
poj 2417 【BSGS算法】
传送门题意:A^x=B(mod C)(C是质数),都是整数,已知A、B、C求x。思路:先把x=i*m-j,其中m=ceil(sqrt(C)),(ceil是向上取整)。这样原式就变为A^(i*m-j)=B(mod C),再变为A^j×B=A^(m*i) (mod C)。枚举j(范围0-m),将A^j×B存入hash表枚举i(范围1-m),从hash表中寻找第一个满足A^...原创 2019-08-15 10:59:40 · 441 阅读 · 0 评论 -
P4213 【模板】杜教筛(Sum)
传送门https://www.luogu.org/problemnew/solution/P4213#include<bits/stdc++.h>using namespace std;#define ll long longconst int maxn=5e6+10;ll mu[maxn],phi[maxn];int prime[maxn];map<int...原创 2019-08-24 17:51:12 · 406 阅读 · 0 评论 -
2019牛客暑期多校训练营(第一场)H xor
题意:对于所有异或和为0的子集大小加和思路:像这种异或和的我们就考虑用线性基来做,因为要求的是子集大小的总和,那我们就对于每一个数来说,来计算他的贡献。首先我们用n个数建立一个线性基a1,如果这n个数都用上了,那就说明不可能有子集异或和为0,否则,如果有r个用上了,剩下了n-r个,那就说明剩下的数都能用基内的数表示,对于没用上的数x来说,他能和外面的数搭配方案有2^(n-r-1)中,因此对于...原创 2019-08-12 09:00:29 · 403 阅读 · 0 评论 -
bzoj2242 [SDOI2011]计算器
传送门题意:1、给定y、z、p,计算y^z mod p 的值;2、给定y、z、p,计算满足xy ≡z(mod p)的最小非负整数x;3、给定y、z、p,计算满足y^x ≡z(mod p)的最小非负整数x。思路:第一问是裸的快速幂第二问,因为P是质数,所以求一下乘法逆元再乘z就行了,特判y是p的倍数时无解第三问,bsgs模板#include<iostrea...原创 2019-08-16 10:10:48 · 418 阅读 · 0 评论 -
2019牛客暑期多校训练营(第五场) C generator 2 【BSGS算法】
传送门题意:已知x[i]=(a*x[i-1]+b)%p,求满足等式的x数组的下标,且该下标小于n。若不存在则输出-1。思路:1.x0==v,直接输出02.a==0 (1)v==x0输出0 (2)v==b输出1(3)否则输出-13.a==1 式子就可以化简成 xn=x0+nb mod ...原创 2019-08-16 17:38:50 · 471 阅读 · 0 评论 -
2019牛客暑期多校训练营(第九场) B Quadratic equation (二次剩余)
传送门题意:给你b,c,p = 1e9 + 7,满足以下方程的x,y,如果没解输出-1 -1(x + y)mod p = b(x *y)mod p = c思路:已知x+y =b 或 x+y = b + p, xy = c + kp ;则通过二次剩余定理,求出(x-y)x = (x-y)+(x+y) >> 1y = x + y - x;#i...原创 2019-08-22 10:42:41 · 435 阅读 · 0 评论 -
数论 二次剩余模板
来自憨批的博客 ( 2k图片 加载有点慢 需要耐心等待 ) 附带证明对于如果存在x使得≡ n mod P 则称n是模P意义下的二次剩余struct T{ long long p, d;};long long Ksm(long long a, long long b, long long p) { long long res = 1; while(b)...原创 2019-08-22 10:47:17 · 438 阅读 · 0 评论 -
2019牛客暑期多校训练营(第九场)I KM and M
传送门思路:因为最后按位与的是一个常数,所以只需要看这个常数对应为1的位置,在M、2M、3M...NM这N个数字中,有多少个仍然是1。用个数乘以对应位的2的幂次即可。那么现在问题变成了如何求这个个数。我们考虑对于一个数字iM,如果求它二进制下第j位是否是0。显然,我们可以先把iM右移j位得到x,然后再把iM右移j+1位得到y,再把y左移1位得到z,z-x的值即为iM第j位的数值。而这个过程,就...原创 2019-08-22 17:37:05 · 440 阅读 · 0 评论 -
51Nod 1244 莫比乌斯函数之和 杜教筛
传送门大佬博客 很详细#include<iostream>#include<cstring>#include<cmath>#include<cstdio>#include<algorithm>#define ll long longusing namespace std;const int maxn=4641590...原创 2019-08-06 11:07:40 · 449 阅读 · 0 评论 -
BZOJ4916 神犇和蒟蒻 杜教筛
传送门第一问的答案毫无疑问肯定是1(wow~ ⊙o⊙),毕竟除了i=1以外质因子的幂次一定大于等于2。第二问 我们把它与id求卷积,发现形式就是n^2。由狄利克雷卷积 知所以有:#include<bits/stdc++.h>using namespace std;#define ll long longconst int maxn=1e6+10;c...原创 2019-08-26 16:30:48 · 433 阅读 · 0 评论 -
hdu 6706 huntian oy 杜教筛
传送门思路: 打表发现 题意可转换成(a,b互质) 求与他互质的和为,因为i对应n−i杜教筛看这里原创 2019-08-26 17:58:10 · 496 阅读 · 0 评论 -
2019ICPC南京网络赛B super_log 欧拉降密
传送门题意:设函数求最小的正整数 x,使得 loga∗(x)≥b思路:通过将递归式展开,展开 b 次等于1,所以 x 为 (共 b次)由欧拉降幂公式需要讨论一下b和的关系,有点麻烦这里有个大佬重现写 mod 函数 ,就可以当作a和p的互素处理,证明#include<cstdio>#include<cmath>#include&...原创 2019-09-02 15:31:01 · 781 阅读 · 2 评论 -
Codeforces 906D Power Tower
传送门题意:给定一个长度为n的数组w,模数m和询问次数q,每次询问给定l,r,求:对m取模的值。思路:直接递归求解即可 详情看这里#include<cstdio>#include<cmath>#include<iostream>#include<cstring>#include<algorithm>#in...原创 2019-09-02 17:10:05 · 445 阅读 · 0 评论 -
2019徐州网络赛A
传送门题意:有一堆石子,A和B轮流从中取一定的石子,但规定:第一次不能取完,至少一个;从第二次开始,每个人取的石子数至少为1,至多为对手刚取的石子数的两倍。A先取,问A是否会胜?然后石子数不确定 给你k组数 (对b取模等于a)思路:斐波那契博弈 扩展gcd#include <bits/stdc++.h>#define ll long long#define LL ...原创 2019-09-07 19:12:34 · 381 阅读 · 0 评论 -
poj 2891(一般模线性方程组) 中国剩余定理
传送门题目大意:有一个数x,x%ai = ri ,给出n对ai和ri,问x的最小非负整数是什么,如果不存在输出-1这是一道中国剩余定理 模板题 但是和一般的不同 这道题不满足除数两两互质。不互素的中国剩余定理:x%a1= r1 ; x%a2 = r2 ; 设k1,k2得到x = a1*k1 + r1 , x = a2*k2+r2那么a1*k1+r1 = a2*k2+r...原创 2019-04-21 21:06:33 · 619 阅读 · 0 评论 -
2019牛客暑期多校训练营(第七场) I Chessboard
传送门题意:给你一个N,M,然后你可以任意构造一个 k * k的矩阵,使得矩阵内每个元素最少是M,且任意不同行不同列的 k 个元素总和不超过N且都相同,问有多少种构造方法。思路:解释:我们枚举k,我们可以把每个元素减去M,那么就相当于N减去 k * M,简化问题并且不影响答案解释:构造两个矩阵Ai,Bi 对于这两个矩阵,我们可知他们前面的系数和为T则满足结果 等...原创 2019-08-19 15:39:08 · 457 阅读 · 0 评论 -
洛谷P4839 P哥的桶 线段树+线性基
传送门题意:N个操作,第K个桶放一个X,查询L到R区间的桶任意数的异或最大值。P哥时不时地会找新女朋友,并把新找的女朋友丢进某个桶里面。我们用 1 k x 来表示P哥找了一个颜值为x的女朋友,并且丢进了k号桶里面P哥每天晚上需要在特定的桶里面找一些女朋友观赏。我们用 2 l r 来表示P哥在l号桶到r号桶之间找女朋友。P哥希望观赏的女朋友颜值异或和尽可能大。#include<...原创 2019-08-09 13:02:12 · 436 阅读 · 0 评论 -
数论 素数
嗯... 也没啥好说的 存个板子 找到时候方便点判断一个数 是否 是素数 时间复杂度是O(√n)bool prime(int x){//判断x是不是质数,是返回true,不是返回false if(x <= 1) return false; for(int i = 2; i <= sqrt(x + 0.5); i ++){//0.5是防止根号的精度误差 ...原创 2019-04-30 00:36:05 · 435 阅读 · 1 评论 -
数论 中国剩余定理
中国剩余定理,又名孙子定理能求解什么问题呢?问题:一堆物品3个3个分剩2个5个5个分剩3个7个7个分剩2个问这个物品有多少个解这题,我们需要构造一个答案我们需要构造这个答案5*7*inv(5*7, 3) % 3 = 13*7*inv(3*7, 5) % 5 = 13*5*inv(3*5, 7) % 7 = 1inv 表...原创 2019-04-19 14:10:28 · 809 阅读 · 0 评论 -
hdu 2512 贝尔数
传送门在学中国剩余定理的时候 突然发现了贝尔数。。感觉和组合数差不多 就学了一下。。别看代码很水 其实题也挺水的题意:将N张卡分成若干个集合,集合不为空,有多少种分法#include <iostream>#include <stdio.h>#include<algorithm>#define LL long long#define ma...原创 2019-04-22 16:19:18 · 620 阅读 · 0 评论 -
HDU-1573 X问题 中国剩余定理
传送门给出n组数,每一组代表x%ai = bi 。 求解x在mm的范围内的数量。因为所有的ai不是互质的,所以直接上模板 求出最小的非负整数解x(对于a*x + b*y = c 的等式,x的每次增长的是 b/gad(a,b)),之后只要判断在n以内出现的次数就可以了。#include <iostream>#include <stdio.h>#include...原创 2019-04-22 15:00:49 · 505 阅读 · 0 评论 -
hdu1573 中国剩余定理
传送门中国剩余定理的裸题,不过所给的余数时非互质的。#include <iostream>#include <stdio.h>#define LL long long#define maxn 100050using namespace std;LL m[maxn];LL a[maxn];LL exgcd(LL a,LL b,LL &x,LL ...原创 2019-04-21 21:10:46 · 518 阅读 · 0 评论 -
求逆元的方法 (三种)
首先对逆元不太了解的 强推这篇 可爱风 的博客 (反正我jio得太TM可爱了)https://www.cnblogs.com/linyujun/p/5194184.html注释: inv 为逆元方法一:费马小定理a^(p-1) ≡1 (mod p)两边同除以aa^(p-2) ≡1/a (mod p)什么(,,• ₃ •,,),这可是数论,还敢写1/a应该写a^(p-2)...原创 2019-04-02 22:15:09 · 1591 阅读 · 0 评论 -
poj 2142 The Balance 扩展欧几里德算法 ax-by=c类型
传送门参考博客https://www.cnblogs.com/My-Sunshine/p/4830171.html 这个博主写的非常详细!!! O(∩_∩)O~~一,题意: 有两个类型的砝码,质量分别为a,b;现在要求称出质量为d的物品, 要用多少a砝码(x)和多少b砝码(y),使得(x+y)最小。(注意:砝码位置有左右之分)。二,思路: 1,砝码有左右位置之分,应对比...原创 2019-03-02 17:28:59 · 632 阅读 · 1 评论 -
poj 2115 Looooops 扩展欧几里德算法 最小正数解
传送门题解转载地址http://www.cnblogs.com/My-Sunshine/p/4828600.html本题和poj1061青蛙问题同属一类,都运用到扩展欧几里德算法,可以参考poj1061,解题思路步骤基本都一样。一,题意: 对于for(i=A ; i!=B ;i+=C)循环语句,问在k位存储系统中循环几次才会结束。 比如:当k=4时,存储的数 i 在0-15...原创 2019-03-02 16:22:17 · 601 阅读 · 0 评论 -
poj 1061 青蛙的约会 扩展欧几里德算法
传送门这道题我们分析在一个数轴上有两只青蛙,这个数轴是首尾交接的,所以可以一直围着它走,显然我们可以列出一个方程来。设它们走了t步,和他们追击了k圈,也就是围着又走了k圈。所以 a+ m * t = b+ n * t + k * L。我们转换一下方程:a - b= (n - m) * t + L * k所以它是形如ax+by=c这种形式,我们直接用欧几德得求出一组解输出最...原创 2019-02-28 17:36:48 · 552 阅读 · 0 评论 -
数论 扩展欧几里德算法
所谓的扩展欧几里得算法就是用来求解方程:ax+by=gcd(a,b)的算法由辗转相除法可知gcd(a,b)=gcd(b,a%b).所以有ax1+by1=gcd(a,b)(方程一)bx2+(a%b)y2=gcd(b,a%b)(方程二);由欧几里得算法gcd(a,b)=gcd(b,a%b)得到,ax1+by1=bx2+(a%b)y2,即 ax1+by1=bx2+(a-a/b...原创 2019-02-28 17:12:28 · 999 阅读 · 1 评论 -
数论 组合数
组合数 大家应该不陌生一般我们用杨辉三角性质杨辉三角上的每一个数字都等于它的左上方和右上方的和(除了边界)第n行,第m个就是,就是C(n, m) (从0开始)递归式模板 时间复杂度是O(n^2)#include<cstdio>const int N = 2000 + 5;const int MOD = (int)1e9 + 7;i...原创 2019-04-30 00:42:00 · 738 阅读 · 1 评论 -
P1869 愚蠢的组合数 卢卡斯定理
传送门#include<cstdio>typedef long long ll;ll fact(int n, ll p){//n的阶乘求余p ll ret = 1; for (int i = 1; i <= n ; i ++) ret = ret * i % p ; return ret ;}void ex_gcd(ll a, ll b, ...原创 2019-04-30 18:37:45 · 423 阅读 · 0 评论 -
数论 莫比乌斯反演
莫比乌斯反演也是反演定理的一种前面学了二项式反演定理那莫比乌斯反演定理与二项式反演定理一样,不求甚解,只求会用μ(x)是莫比乌斯函数,它是这样计算的μ(1) = 1x = p1 * p2 * p3……*pk(x由k个不同的质数组成)则μ(x) = (-1)^k其他情况,μ (x) = 0比如30 = 2 * 3 * 5μ(30) = (-1)^...原创 2019-07-23 17:25:40 · 392 阅读 · 0 评论