数论只会gcd
_Shmily
这个作者很懒,什么都没留下…
展开
-
2020中国大学生程序设计竞赛(CCPC) - 网络选拔赛----HDU--6900、Residual Polynomial(分治、FFT)
题目链接题面:题意:给定函数: f1(x)=∑i=0naixif_1(x)=\sum_{i=0}^na_ix^if1(x)=∑i=0naixi给定 b2,b3,...,bnb_2,b_3,...,b_nb2,b3,...,bn 和 c2,c3,...,cnc_2,c_3,...,c_nc2,c3,...,cn对于 i∈[2,n],fi(x)=bi(fi−1(x))′+cifi−1(x)i\in[2,n],f_i(x)=b_i(f_{i-1}(x))'+c_if_{i-1}(x)原创 2020-09-22 19:57:00 · 673 阅读 · 1 评论 -
2020 Multi-University Training Contest 6---- HDU--6827、Road To The 3rd Building(期望)
题目链接题面:题意:求 1j−i+1∑k=ijsk\frac{1}{j-i+1}\sum_{k=i}^js_kj−i+11∑k=ijsk 的期望,其中 1≤i≤j≤n1\le i\le j\le n1≤i≤j≤n。我们可以先求出 ∑all1j−i+1∑k=ijsk\sum_{all}\frac{1}{j-i+1}\sum_{k=i}^js_k∑allj−i+11∑k=ijsk 然后再除以区间个数 n∗(n+1)/2n*(n+1)/2n∗(n+1)/2 即可。题解:参考 另一篇原创 2020-08-28 20:45:48 · 129 阅读 · 0 评论 -
HDU - 5528 Count a * b (欧拉函数、除数函数)
题目vj链接题面:题意:求解:g(m)=∑m∣nf(m),f(m)=∑a=0m−1∑b=0m−1[a∗b%m≠0]g(m)=\sum\limits_{m|n}f(m),f(m)=\sum\limits_{a=0}^{m-1}\sum\limits_{b=0}^{m-1}[a*b\%m\neq0]g(m)=m∣n∑f(m),f(m)=a=0∑m−1b=0∑m−1[a∗b%m=0]。题解:①先化简f(m)f(m)f(m):f(m)=∑a=0m−1∑b=0m−1[a∗b%m≠0]f(m)原创 2020-08-26 09:51:09 · 151 阅读 · 0 评论 -
HDU -- 2421 Deciphering Password(基础数论)
题目vj链接题面:题意:给定两个数A,BA,BA,B,求ABA^BAB的各因子的因子个数的立方之和。题解:我们设 ddd 为因子个数函数,d(n)d(n)d(n) 表示 nnn 的正因子个数。那么 ddd 函数为积性函数,若gcd(n,m)=1gcd(n,m)=1gcd(n,m)=1,那么d(nm)=d(n)∗d(m)d(nm)=d(n)*d(m)d(nm)=d(n)∗d(m),那么则有:d3(nm)=d3(n)∗d3(m)d^3(nm)=d^3(n)*d^3(m)d3(nm)=d3(n)∗原创 2020-08-25 18:24:26 · 103 阅读 · 0 评论 -
HDU -- 5451 Best Solver(广义斐波那契数列)
题目vj链接题面:题意:y=(5+26)1+2x,x(0≤x<232)y=(5+2\sqrt6)^{1+2^x},x(0\le x<2^{32})y=(5+26)1+2x,x(0≤x<232)求:[y]%M,其中[y]指y的整数部分,M为≤46337的质数[y]\%M,其中[y]指y的整数部分,M 为 \le46337的质数[y]%M,其中[y]指y的整数部分,M为≤46337的质数。题解:我们设 An=(5+26)n,Bn=(5−26)n,Sn=An+BnA_n=(5+2原创 2020-08-25 13:08:02 · 112 阅读 · 0 评论 -
Codeforces Round #626 (Div. 2) D. Present 和的异或
time limit per test3 secondsmemory limit per test512 megabytesinputstandard inputoutputstandard outputCatherine received an array of integers as a gift for March 8. Eventually she grew bored with ...原创 2020-08-24 21:46:45 · 129 阅读 · 0 评论 -
2020牛客暑期多校训练营(第七场) I、Valuable Forests(数论、 Cayley 公式)
题目链接题面:题意:nnn 个带有标号的点生成的一个无根树组成的森林的权值为 ∑dx2\sum d_x^2∑dx2,其中 dxd_xdx 为 xxx 号节点的度数。求 nnn 个带有标号的点生成的所有不相同的无根森林的权值和。题解:(1)Cayley 公式一个含有 nnn 个节点的完全图的生成树的个数为 nn−2n^{n-2}nn−2,即 带有标号的 nnn 个点生成的无根树的个数为 nn−2n^{n-2}nn−2nnn 个标号节点生成一个有 kkk 棵无根树的森林,使得给定的 kkk原创 2020-08-25 09:28:02 · 148 阅读 · 0 评论 -
2020牛客暑期多校训练营(第六场) B、Binary Vector(数论)
题目链接题面:题意:给定 n 个 n 维随机 0/1 向量,求这 n 个 n 维随机 0/1 向量组成的矩阵满秩的概率。题解:对于每一个长度为 n 的向量,都有 2n2^n2n 种情况,因为要求 n 个向量线性独立,所以我们依次讨论:对于第一个向量来说,只需要至少有一个位置为 1 即可,即全部为 0 的情况不满足条件,此时满足条件的情况为2n−12^n-12n−1对于第二个向量来说,需要满足的条件是,不能全部为 0 ,且不能被第一个向量所表示,此时满足条件的情况为2n−22^n-22n−2原创 2020-08-25 09:26:26 · 112 阅读 · 0 评论 -
2020牛客暑期多校训练营(第五场) E、Bogo Sort( gcd )
题目链接题面:题意:给定一个全排列P ,问有多少个全排列经过0次或多次P变换能变成1...n1...n1...n题解:转化为,初始序列 1...n1...n1...n 经过0次或者多次P变换能产生多少个不同的序列。找出P中的环,求 lcmlcmlcm 即可。代码:def gcd(a,b): if b==0: return a return gcd(b,a%b)def lcm(a,b): return a*b//gcd(a,b)def main原创 2020-08-25 09:25:54 · 72 阅读 · 0 评论 -
2020牛客暑期多校训练营(第七场) H、Dividing(数论分块)
题目链接题面:题意:(1,k)(1,k)(1,k)是一个符合要求的二元组。如果(n,k)(n,k)(n,k)是一个符合要求的数组,那么(n+k,k)(n+k,k)(n+k,k)是一个符合要求的数组。如果(n,k)(n,k)(n,k)是一个符合要求的数组,那么(nk,k)(nk,k)(nk,k)是一个符合要求的数组。给定n,kn,kn,k问有多少个符合要求的数组。题解:比赛的时候是打表看出来的规律。对于二元组(n,k)(n,k)(n,k),如果他是一个符合要求的二元组,那么 n=1&nbs原创 2020-08-25 09:23:47 · 113 阅读 · 0 评论 -
2020牛客暑期多校训练营(第七场) B、Mask Allocation(gcd)
题目链接题面:题意:给定 n∗mn*mn∗m 个物品,把这 n∗mn*mn∗m 个物品装箱,每个箱子的物品个数任意。要求,既可以把这些箱子分成 n 组,每组有 m 个物品,也可以把这些箱子分成 m 组,每组 n 个物品。求最小的箱子个数,和在箱子个数最小的情况下,每个箱子的物品的字典序最大值。题解:打表发现模拟gcdgcdgcd即可。代码:#include<iostream>#include<cstdio>#include<cstdlib>#i原创 2020-08-25 09:25:29 · 87 阅读 · 0 评论 -
2020牛客暑期多校训练营(第三场)F、Fraction Construction Problem(数论、exgcd)
题目链接题面:题意:给定a,ba,ba,b求解:cd−ef=ab\frac{c}{d}-\frac{e}{f}=\frac{a}{b}dc−fe=ba其中d<b and f<bd<b\space and\space f<bd<b and f<b1≤c,e≤4e121\le c,e\le4e121≤c,e≤4e12如果无解输出−1 −1 −1 −1-1\space-1\space原创 2020-08-25 08:59:00 · 156 阅读 · 0 评论 -
Educational Codeforces Round 89 (Rated for Div. 2) D. Two Divisors(数论、gcd)
题目链接题面:题意:给定一个长度为n的数组a。对于数组a中每一个数 ai,找到ai 两个大于1的因子x,y,使得gcd(x+y,a)=0。题解:记录每个数的最小质因子,然后分解,时间复杂度好像是O(logn)O(logn)O(logn)的。(1)如果aia_iai本质不同的质因子只有一个,那么找不到d1,d2d_1,d_2d1,d2(2)否则我们设a=p1s1p2s2...pksk,d1=p1∗p2...px,d2=px+1...pka=p_1^{s_1}p_2^{s_2}...p原创 2020-08-25 08:58:49 · 94 阅读 · 0 评论 -
2020 Multi-University Training Contest 1---- HDU--6760、Math is Simple(数论、莫比乌斯反演)
题目链接题面:题意:求:f(n)=∑1≤a<b≤n,gcd(a,b)=1,a+b>=n1abf(n)=\sum\limits_{1\le a<b\le n,gcd(a,b)=1,a+b>=n}\frac{1}{ab}f(n)=1≤a<b≤n,gcd(a,b)=1,a+b>=n∑ab1题解:以下均基于 n≥2n \ge 2n≥2(1)f(n)=∑1≤a<b≤n,gcd(a,b)=1,a+b>=n1abf(n)=\sum\limits_{1\原创 2020-08-25 08:57:21 · 147 阅读 · 0 评论 -
2020 Multi-University Training Contest 1---- HDU--6755、Fibonacci Sum(数论、二次剩余、二项式展开)
题目链接题面:题意:求∑i=0n(Fc∗i)k mod 1000000009\sum_{i=0}^n(F_{c*i})^k\space mod \space1000000009∑i=0n(Fc∗i)k mod 1000000009c,n<=1e18,k<=1e5c,n<=1e18,k<=1e5c,n<=1e18,k<=1e5题解:首先认识到,1000000009 是一个质数,且 5 是模 1000000009 的原创 2020-08-25 08:56:07 · 110 阅读 · 0 评论 -
2020牛客暑期多校训练营(第四场)H、Harder Gcd Problem(思维、数论)
题目链接题面:题意:有1...n1...n1...n共n个数字。从中选出两个子集A、B,其中 A ∩ B = 空。集合A和集合B的大小均为m。我们对于A集合和B集合中的元素按照某一顺序放置后,可以使得任意的gcd(ai,bi)>1gcd(ai,bi)>1gcd(ai,bi)>1简化:把 1~N 的数选尽量多的组,使得每组 gcd 大于 1。输出任意一种方案题解:考虑m最大能取到多大,除了大于 n/2 的质数和 1,其余的数是可以均分到两个集合中的(如果剩余的数是奇数,原创 2020-08-25 08:51:36 · 112 阅读 · 0 评论 -
2020牛客暑期多校训练营(第四场)B、Basic Gcd Problem (线性筛)
题目链接题面:题解:我们可以知道fci(ni)=cikf_{c_i}(n_i)=c_i^kfci(ni)=cik 其中 k 是 n 的质因子个数。一、直接暴力求也没T。#include<iostream>#include<cstdio>#include<cstdlib>#include<algorithm>#include<cstring>#include<cmath>#include<string原创 2020-08-25 08:50:14 · 72 阅读 · 0 评论 -
2020牛客暑期多校训练营(第一场) G、BaXianGuoHai, GeXianShenTong(数学、群论)
题目链接题面:题意:定义一个三元组的运算。p=998244353p=998244353p=998244353(a0,a1,a2)∗(b0,b1,b2)=(a_0,a_1,a_2) * (b_0,b_1,b_2)=(a0,a1,a2)∗(b0,b1,b2)=((a0b0+a1b2+a2b1)mod p,(a1b0+a2b2+a0b1)mod p,(a2b0+a0b2+a1b1)mod p)((a_0b_0+a_1b_2+a_2b_1) mod\space原创 2020-08-25 08:49:30 · 136 阅读 · 0 评论 -
2020牛客暑期多校训练营(第一场)J、Easy Integration (数学、分部积分)
题目链接题面:题意:求给定的定积分。题解,化成 ∫ xn (1-x)n dx 然后用分部积分法即可得。分部积分法:∫ udv = uv - ∫ vdu最终为 n!/((n+1)*(n+2) * … * (2n+1) )代码:#include<iostream>#include<cstdio>#include<cstdlib>#include<algorithm>#include<cstring>#include<c原创 2020-08-25 08:42:34 · 96 阅读 · 0 评论 -
P1338 末日的传说 (逆序对)
题目链接题面:题解:如何让逆序对数为m的序列字典序最小呢? 假设位置p是最后一个原始序列的位置,那这个点应该尽量靠右,才能使得字典序最小。而为了保证有m个逆序对,要求p后面的逆序对数尽量大。需要降序排列。这样问题就转成找点p,同时在找到p时还需要知道 m-后面所有逆序对数剩余的值,这个值要在点p身上修改。则我们现在可以直接输出序列。 1)p之前的部分按照顺序输出 2)输出p,如果后面逆序对不够,则需要修改p点再输出。 3)逆序输出p之后的部分,注意如果p之前改点了,需要多判断一下。代码:#i原创 2020-08-25 08:08:31 · 120 阅读 · 0 评论 -
P1249 最大乘积 (数论、贪心)
题目链接题面:题解:从2开始连续几个自然数的乘积最大。假设我们 2+3+4+…+k>=n 刚好成立。我们设ans=2+3+4+…k如果ans=n,我们直接输出乘积即可。如果ans-n=1,那我们去掉2,令k+1如果ans-n>1 假设 ans-n=p,那么我们去掉p即可。因为需要大数,就用python写了。def main(): n=int(input()) ans=0 now=2 a=[] while ans<n:原创 2020-08-25 08:08:14 · 299 阅读 · 0 评论 -
P1414 又是毕业季II (约数)
题目链接题面:题解:统计每个因数出现的次数。对于每个出现次数维护最大的因数。逆向更新代码:#include<iostream>#include<cstdio>#include<cstring>#include<cmath>#include<algorithm>#define ll long long#define pr make_pair#define pb push_backusing namespace std;原创 2020-08-25 08:08:04 · 71 阅读 · 0 评论 -
P1403 [AHOI2005]约数研究 (数论分块)
题目链接题面:题解:考虑因子x在1–n中出现的次数为n/x枚举因子,数论分块。代码:#include<iostream>#include<cstdio>#include<cstdlib>#include<cmath>#include<string>#include<cstring>#include<algorithm>#include<map>#include<set>原创 2020-08-25 08:06:28 · 128 阅读 · 0 评论 -
P2261 [CQOI2007]余数求和 (数论分块)
题目链接题面:题解:代码:#include<iostream>#include<cstdio>#include<cstring>#include<string>#include<cmath>#include<cstdlib>#include<algorithm>#include<queue>#include<vector>#include<set>#defi原创 2020-08-24 22:31:13 · 100 阅读 · 0 评论 -
P2183 [国家集训队]礼物 (扩展卢卡斯)
题目连接题面:题解:代码:#include<iostream>#include<algorithm>#include<cstdio>#include<cstring>#include<string>#include<cmath>#include<vector>#define ll long longusing namespace std;const int maxn=100100;int pr原创 2020-08-24 22:30:21 · 140 阅读 · 0 评论 -
Codeforces Round #289 (Div. 2) E. Pretty Song (数论、概率)
题目链接题面:题意:给定一个字符串s,计算其中各子串中A、E、I、O、U、Y所占比例,输出比例之和。题解:假定sum[i]表示1~i中元音字母的个数,len表示字符串总长度,字符串从下标1开始。对于长度为1的子串,每个元音字母都要用1次,即(sum[len] -sum[0]) / 1,对于长度为2的子串,s[2]到第s[len-1]的元音字母都要用2次,而第s[1]和s[len]位置的元音字母只需用1次,即( (sum[len] -sum[0]) + (sum[len-1] - sum[原创 2020-08-24 22:07:18 · 97 阅读 · 0 评论 -
Codeforces Round #285 (Div. 2) D. Misha and Permutations Summation (康托展开,逆康托展开,变进制数)
题意:给出两个1–n的全排列 p,q 。ord(p) 为 p 在所有全排列中的字典序排名(从0开始)ord(q) 为 q 在所有全排列中的字典序排名(从0开始)求 排名为( ord(p) + ord(q))% n! 的全排列。题解:先在变进制数下表示 p ,q 的康托展开,然后在变进制数下相加(最后一次相加可能溢出,不处理,相当于对 n! 的取模),再将相加后的变进制数逆康托展开。#include<iostream>#include<cstdio>#include原创 2020-08-24 22:01:22 · 99 阅读 · 0 评论 -
7-8 2020 CCPC Wannafly Winter Camp Day1 H. 最大公约数
这是一道钓鱼小王子,秒出的题,至今我也不会证明。有三个人,A,B,C,其中 A 和 B 共享了一个神秘的数字 k,已知 1≤k≤n。现在 A 和 C 说:“k 的值等于 x”。C 不太信任 A,于是想向 B 确认一下 k 是否真的等于 x。B 虽然不想直接把 k 的值告诉 C,但是 B 允许 C 给出一个正整数 y(注意 y 可以大于 n),然后 B 会回答 gcd(k,y)。现在给出 k...原创 2020-08-24 21:27:58 · 72 阅读 · 0 评论 -
7-1 2020 CCPC Wannafly Winter Camp Day1 A. 期望逆序对
有 n 个独立的随机变量,其中 xi 的值是一个从 [li ,ri ] 中随机选取的整数,即对于 [li ,ri ] 中的任何一个整数 j,xi =j 的概率都是 (ri −li +1)−1 。现在你需要给出一个长度为 n 的排列 p,那么可以得到一个长度为 n 的随机变量序列 。你的目标是让结果序列的逆序对个数的期望尽可能少。求逆序对个数的期望的最...原创 2020-08-24 21:27:05 · 194 阅读 · 0 评论 -
7-3 2020 CCPC Wannafly Winter Camp Day1 C. 染色图
定义一张无向图 G=⟨V,E⟩ 是 k 可染色的当且仅当存在函数 f:V↦{1,2,⋯,k} 满足对于 G 中的任何一条边 (u,v),都有 f(u)≠f(v)。定义函数 g(n,k) 的值为所有包含 n 个点的无自环、无重边的 k 可染色无向图中的边数最大值。举例来说,g(3,1)=0,g(3,2)=2,g(3,3)=3。现在给出三个整数 n,l,r,你需要求解: (∑ g(n,i))...原创 2020-08-24 21:26:29 · 117 阅读 · 0 评论