数论
inklutcuah
这个作者很懒,什么都没留下…
展开
-
【类欧几里得学习小记】
类欧几里得算法因为形式上像欧几里得算法而得名,其时间复杂度也和欧几里得算法一致,类欧几里得算法有很多应用,下面只举部分例子。目标求出以下三个函数值f(a,b,c,d)=∑ni=0⌊ai+bc⌋f(a,b,c,d)=\sum_{i=0}^n\lfloor{ai+b\over c}\rfloorg(a,b,c,d)=∑ni=0i⌊ai+bc⌋g(a,b,c,d)=\sum_{i=0}^ni\lfloor原创 2017-08-23 21:54:05 · 359 阅读 · 0 评论 -
【jzoj5083】【GDSOI2017第三轮模拟】【Gift】【快速傅立叶变换】
题目大意解题思路我们把平方拆开,得出增加的值和旋转的方式无关,是一个二次函数可以直接算出,现在的问题是如何旋转。我们发现和位置有关,是对应位置xy的乘积和,我们只要将x翻转就变成卷积,将x倍长即可以考虑所有情况。对于卷积,我们可以用fft来求。code#include<set>#include<cmath>#include<cstdio>#include<cstring>#include<c原创 2017-04-22 10:29:35 · 305 阅读 · 0 评论 -
【jzoj5069】【GDSOI2017第二轮模拟】【蛋糕】【莫比乌斯反演】【杜教筛】
题目大意CJY很喜欢吃蛋糕,于是YJC弄到了一块蛋糕,现在YJC决定和CJY分享蛋糕。这块蛋糕上有n^2颗葡萄干,排成了一个n*n的点阵,每颗葡萄干互不相同且被编号为1~n^2。YJC决定沿着一条直线把蛋糕切成两份。YJC和CJY都很喜欢吃葡萄干,所以切出的两份蛋糕必须都包含至少一颗葡萄干。同时他们都不希望吃到不完整的葡萄干,所以切的时候不能经过任意一颗葡萄干。CJY喜欢1号葡萄干,所以他原创 2017-04-19 17:13:39 · 678 阅读 · 0 评论 -
【jzoj5047】【数字格】【数论】
题目大意格子的第一行及第一列均是给定的:F[k,1]=lkF[1,k]=tk对于其他格子,满足递推式:F[i,j]=a*F[i,j-1]+b*F[i-1,j]+c求F[n,n](mod 1000003)。解题思路对于我们发现三项互不影响,使用组合数可以o(n)算出前两项,对于第三项我们可以得出贡献等于∑N−2i=0∑N−2j=0Cii+jaibjc\sum_{i=0}^{N-2}\sum_{j=0}原创 2017-04-06 08:17:42 · 367 阅读 · 0 评论 -
【51nod1222】【最小公倍数计数】【莫比乌斯反演】
题目大意定义F(n)表示最小公倍数为n的二元组的数量。即:如果存在两个数(二元组)X,Y(X <= Y),它们的最小公倍数为N,则F(n)的计数加1。例如:F(6) = 5,因为[2,3] [1,6] [2,6] [3,6] [6,6]的最小公倍数等于6。给出一个区间[a,b],求最小公倍数在这个区间的不同二元组的数量。例如:a = 4,b = 6。符合条件的二元组包括:[1,4] [2,4] [4原创 2017-03-16 12:20:47 · 465 阅读 · 0 评论 -
【51nod1223】【分数等式的数量】【莫比乌斯反演】
题目大意有这样一个分数等式:1/X + 1/Y = 1/N,(X,Y,N > 0)。给出L,求有多少满足X < Y <= L的等式。例如:L = 12,满足条件的等式有3个,分别是:1/3 + 1/6 = 1/2, 1/4 + 1/12 = 1/3, 1/6 + 1/12 = 1/4。解题思路Ans=∑Nx=1∑Ny=x+1[(x+y)|(xy)]Ans=\sum_{x=1}^N\sum_{y=x+原创 2017-03-14 17:34:16 · 425 阅读 · 0 评论 -
【jzoj1938】【2011集训队出题】【Crash的数字表格】【莫比乌斯反演】
题目大意Ans=∑Nx=1∑My=1Lcm(x,y)Ans=\sum_{x=1}^{N}\sum_{y=1}^{M}Lcm(x,y) 解题思路Ans=∑Nx=1∑My=1Lcm(x,y)Ans=\sum_{x=1}^{N}\sum_{y=1}^{M}Lcm(x,y) =∑Nx=1∑My=1xy/Gcd(x,y)=\sum_{x=1}^{N}\sum_{y=1}^{M}xy/Gcd(x,y) =∑Nd原创 2017-03-12 22:47:23 · 276 阅读 · 0 评论 -
【jzoj3736】【数学题】【类欧几里德】
题目大意解题思路观察可知当向量夹角cos大于1/2时模长最小的向量即答案。向量a,b模长为p,q,夹角余弦cos。|ax+by|=(√(px)2+(qy)2+2pxqycos)|ax+by|=\sqrt ((px)^2+(qy)^2+2pxqycos)>=(√(px)2+(qy)2−2|px||qy|cos)>=\sqrt ((px)^2+(qy)^2-2|px||qy|cos)>=(√(px)2+原创 2017-03-19 08:43:58 · 547 阅读 · 0 评论 -
【jzoj3598】【CQOI2014】【数三角形 】
题目大意解题思路考虑正难则反,求出所有点组合情况减去三点共线情况,考虑枚举一个矩形,两个端点在对角,第三个在对角线,选取情况是长宽gcd-1,统计答案即可。code#include<cmath>#include<cstdio>#include<cstring>#include<algorithm>#define LF double#define LL long long#define M原创 2017-03-04 12:11:49 · 381 阅读 · 0 评论 -
【jzoj4194】【Banner】【容斥原理】
题目大意给出一个(n+1)*(m+1)的点阵,求有多少种选起点终点(无序点对)使得连线除起点终点外不经过其他点,且长度在给定区间内。解题思路观察可知枚举横向x纵向y长度即可求出长度,gcd(x,y)==1时成立,与坐标轴平行的特殊考虑。枚举x即可求出y的取值范围,发现可以算出x有多少取法,每个y对应的取法是等差数列,可以直接求和。但是我们要求互质,分解枚举的x,发现不同质数的个数有限,可以使用容斥原原创 2017-02-15 20:24:53 · 293 阅读 · 0 评论 -
【jzoj4965】【Equation】【容斥】
题目大意听着自己美妙的曲子,小Z进入了梦乡。在梦中,小Z仿佛又回到了自己纵横考场的年代。在梦中,小Z参加了一场考试,这场考试一共有n道题,每道题的最终得分都是一个大于等于0的整数。然而醒来后,小Z忘记了自己每道题的得分。他只记得自己计算过m次一些题目的分数和,每道题都被计算过,并且只被计算过一次。除此之外他还记得其中t道题的满分分别是多少(一道题的得分不会超过满分)。现在小Z想知道他这场考试有多少种原创 2017-01-29 15:52:38 · 376 阅读 · 0 评论 -
【jzoj3214】【SDOI2013】【方程】【中国剩余定理】【组合数取模】
题目大意给定方程X1+X 2+…+Xn=m我们对第 1.. n1 个变量 进行一些限制 :X1≤A1X2≤A2…Xn1 ≤An1我们对第 n1+1.. n1+1.. n1+ n2 个变量 进行一些限制 :X_(n1+1)≥A_(n1+1)X_(n1+2)≥A_(n1+2)…X_(n1+n2) ≥A_(n1+n2)求:在满足这些限制的前提下, 该方程正整数解的个数。答案可能很大,请输出对 p取模 后的原创 2017-02-12 22:15:21 · 604 阅读 · 0 评论 -
【jzoj100006】【SDOI2017】【数字表格】【数论】
题目大意解题思路考虑生成一个新的序列g,使得f[i]=Πd|i(d!=i)g[d]f[i]=\Pi_{d|i(d!=i)}g[d]ans=Πni=1Πmj=1f[gcd(i,j)]ans=\Pi_{i=1}^n\Pi_{j=1}^mf[gcd(i,j)]=Πni=1Πmj=1Πd|gcd(i,j)(d!=gcd(i,j))g[d]=\Pi_{i=1}^n\Pi_{j=1}^m\Pi_{d|gcd(i原创 2017-05-26 22:11:37 · 344 阅读 · 0 评论 -
【jzoj3221】【HNOI2013】【游走】【高斯消元】【期望】
题目大意一个无向连通图,顶点从1 编号到N,边从1 编号到M。小Z 在该图上进行随机游走,初始时小Z 在1 号顶点,每一步小Z 以相等的概率随机选择当前顶点的某条边,沿着这条边走到下一个顶点,获得等于这条边的编号的分数。当小Z到达N 号顶点时游走结束,总分为所有获得的分数之和。现在,请你对这M 条边进行编号,使得小Z 获得的总分的期望值最小。解题思路考虑每一个点期望经过的次数,可以列出方程组,使用高原创 2017-06-17 16:04:39 · 304 阅读 · 0 评论 -
【jzoj5288】【NOIP2017提高组A组模拟8.17】【球场大佬】
Description每天下午,古猴都会去打羽毛球。但是古猴实在是太强了,他必须要到一些比较强的场去打。但是每个羽毛球场都有许多的人排着队,每次都只能上四个人,每个人都有自己的能力值,然而这四个人的总能力的高低与否才是古猴是否决定参加这个场的关键。每四个人的总能力值的定义是:任意选两个与另两个PK,能力值的贡献是较高的一组减去较低的一组。比如能力值为5和7的去PK 6和10的差值,那么用较高的减去较原创 2017-08-17 11:35:45 · 453 阅读 · 0 评论 -
【jzoj5358】【NOIP2017提高A组模拟9.12】【BBQ】
descriptionsolution可以发现组合数的意义就是在二维平面上一个点只能往上往右走走到另一个点的方案数,这个问题可以用递推来解决,相当于在(-a[i],-b[i])上都加一,求f(a[i],b[i])的和,减去i,j相等的情况再除以二即可。code#include<cstdio>#include<cmath>#include<cstring>#include<algorithm>原创 2017-09-16 11:07:31 · 393 阅读 · 0 评论 -
【jzoj3327】【陶陶的难题】【类欧几里得】
description陶陶给Crash出了一个大难题,他要求Crash计算出下面式子的值:其中A,B,C,L,R均为给定正整数。由于答案可能会很大,你只需要输出答案mod 1,000,000,007后的值。solution可以发现这就是裸的类欧,求出g即可。类欧几里得问题推导code#include<cstdio>#include<cmath>#include<cstring>#include原创 2017-08-23 21:56:44 · 427 阅读 · 0 评论 -
【jzoj5337】【NOIP2017提高A组模拟8.25】【夜莺与玫瑰】【莫比乌斯反演】
descriptionsolution我们可以发现一个性质ans=n+m+∑n−1i=1∑j=1m−1([(i,j)==1](n−i)(m−j)−[(i,j)==2](n−i)(m−j))ans=n+m+\sum_{i=1}^{n-1}\sum{j=1}^{m-1}([(i,j)==1](n-i)(m-j)-[(i,j)==2](n-i)(m-j))考虑两条重合的直线(以两个端点确定一条直线的线段)原创 2017-08-25 15:45:56 · 495 阅读 · 0 评论 -
【jzoj3771】【NOI2015模拟8.15】【小 Z 的烦恼】
题目大意小 Z 最近遇上了大麻烦,他的数学分析挂科了。于是他只好找数分老师求情。善良的数分老师答应不挂他,但是要求小 Z 帮助他一起解决一个难题问题是这样的,现在有 n 个标号为 1~n 的球和 m 个盒子,每个球都可以放进且只能放进一个盒子里面,但是要满足如下的规则:1. 若把标号为 i 的球放进了第 j 个盒子,那么标号为 2*i 的球一定要在第 j+1 个盒子里面(若 j2. 若把标号为原创 2017-08-14 19:35:57 · 332 阅读 · 0 评论 -
【jzoj5250】【GDOI2018模拟8.11】【质数】
题目大意解题思路ans=∑ni=1∑d|i[(d,i/d)==1]ans=\sum_{i=1}^n\sum_{d|i}[(d,i/d)==1]因为2f(i)2^{f(i)}相当于从i的质因子中考虑选不选进一个数里,要么选要么不选,等同于拆成两个互质的数。ans=∑ni=1∑d|i∑p|d&&p|(i/d)[(d,i/d)==1]ans=\sum_{i=1}^n\sum_{d|i}\sum_{p|d\原创 2017-08-12 20:28:09 · 380 阅读 · 0 评论 -
【jzoj4220】【五校联考2day2】【WYF的盒子】【自然数幂和】
题目大意WYF有一个精致的k维立方体盒子(2维为正方形,3维为正方体,以此类推)。这个盒子的边长为n,里面有一个边长为n-1的盒子,边长为n-1的盒子里面还有一个边长为n-2的盒子……最里面的盒子边长为m。现在WYF想知道这n-m+1个盒子的k维体积和模p的余数。解题思路ans=∑ni=mik%pans=\sum_{i=m}^ni^k\%p∑ni=0ik=∑ki=1s(k,i)(n+1)(i+1)(原创 2017-07-18 13:39:19 · 590 阅读 · 0 评论 -
【jzoj5224】【GDOI2018模拟7.12】【C】【自然数幂和】【杜教筛】
题目大意解题思路#code#include#include#include#include#define LF double#define LL long long#define ULL unsigned LL#define fo(i,j,k) for(LL i=j;i#define fd(i,j,k) for(LL i=j;i>=k;i--)#defin原创 2017-07-14 21:05:35 · 317 阅读 · 0 评论 -
【jzoj3282】【GDOI2013】【飞行棋】【期望】【高斯消元】
题目大意刁施看着两人离去,然后打开了盒子。盒子里有一个普通的飞行棋地图、一个飞行棋棋子、和一个骰子,是一棵正立方体,上面分别是数字1到6,不过却被吕森施了魔法(在刁施眼中,吕森就是一个魔法师):掷得每个点都有各自的概率。不学无术的刁施想知道他平均掷多少次骰子才能找到吕森玩,于是他找到了他的好朋友,你。作为班上的尖子生,这种事对你来说只是轻而易举,而且好朋友的事是不好拒绝的,所以现在你需要做的,就是帮原创 2017-06-25 14:08:29 · 601 阅读 · 0 评论 -
【jzoj2758】【SDOI2012】【走迷宫】【期望】【高斯消元】
题目大意Morenan 被困在了一个迷宫里。迷宫可以视为 N 个点 M 条边的有向图,其中 Morena n处于起点 S , 迷宫的终点设为 T 。 可惜的是 , Morenan 非常的脑小 , 他只会从一个点出发随机沿着一条从该点出发的有向边 , 到达另一个点 。 这样 , Morenan 走的步数可能很长 , 也可能是无限,更可能到不了终点。 若到不了终点,则步数视为无穷大。 但你必须想方设法求原创 2017-06-24 08:42:15 · 395 阅读 · 0 评论 -
【jzoj3623】【SDOI2014】【数表】【莫比乌斯反演】
题目大意解题思路ans=∑ni=1∑mj=1[f(gcd(i,j))<=a]ans=\sum_{i=1}^n\sum_{j=1}^m[f(gcd(i,j))<=a]其中f[x]=∑d|xdf[x]=\sum_{d|x}d经过一波莫比乌斯反演,转换主题之后,ans=∑nt=1⌊nt⌋⌊mt⌋g(t)ans=\sum_{t=1}^n \lfloor{n\over t}\rfloor \lfloor{m\原创 2017-06-30 22:48:42 · 290 阅读 · 0 评论 -
【jzoj4264】【tty妹子的函数】
题目大意对于给定的函数,求这个函数将会经过多少个整点。解题思路观察可知,Ans=∑NX=1(X(X−A)==0(%M))=∑NX=1(X2==XA(%M))Ans=\sum_{X=1}^N(X(X-A)==0(\%M))=\sum _{X=1}^N(X^2==XA(\%M))令D=Gcd(X,M),X=X’D,M=M’D。Ans=∑D|M∑N/DX′=1(XX′==X′A(%M′))=∑D|M∑N/原创 2017-02-11 15:54:56 · 770 阅读 · 0 评论 -
【jzoj3250】【Pow】
题目大意定义a^b为a的b次方,并且^是满足右结合的,即a^b^c^d=a^(b^(c^d))。例如,2^3^2=2^(3^2)=2^9=512。现在给定n个数a1,a2,…,an 求a1^a2^…^an对p取模的值。解题思路观察可知,当gcd(a,p)=1时a^b=a^(b%phi(p))(%p)。当 gcd(a,p)=d!=1时令a’=a/d,p’=p/d,a^b=a’^(b%phi(p))*d原创 2017-02-10 22:17:52 · 567 阅读 · 0 评论 -
【jzoj3892】【放棋子】【数论】【第二类斯特林数】
题目大意解题思路考虑强制i行j列一定不放,其他可放可不放,用组合数处理一下。考虑剩下的涂什么颜色,就是将n个不同的数放到m个集合,是第二类斯特林数,阶乘处理一下。code#include<cmath>#include<cstdio>#include<cstring>#include<algorithm>#define LF double#define LL long long#defin原创 2017-01-20 20:59:31 · 329 阅读 · 0 评论 -
【jzoj4866】【禅与园林艺术】【树状数组】
题目大意有一个长度为 n 的数列{ai},为一列树木的美观值。现在有m 次询问,每次给出三个数l,r和P,询问对于所有的l <= l’ <= r’ <= r (a[l’] + a[l’ + 1] + … + a[r’]) mod P的最小值。解题思路发现区间长度大于模数时答案为零,所以用个树状数组维护一下就可以了。code#include<set>#include<cmath>#include<原创 2016-11-07 21:52:01 · 316 阅读 · 0 评论 -
【jzoj4900】【完全平方数】【数论】
题目大意选1到n的数中的若干个,组成一个最大的完全平方数。解题思路首先我们把合数都先选上,因为我们可以通过选质数来使它变成完全平方数,分解质因数后看指数的奇偶性就可以了。code#include<cstdio>#include<algorithm>#define LL long long#define fo(i,j,k) for(int i=j;i<=k;i++)#define fd(i,j原创 2016-12-04 10:04:15 · 505 阅读 · 0 评论 -
【51nod1040】【最大公约数之和】【欧拉函数】
题目大意给出一个n,求1-n这n个数,同n的最大公约数的和。比如:n = 61,2,3,4,5,6 同6的最大公约数分别为1,2,3,2,1,6,加在一起 = 15解题思路ans=∑x|nx∗∑ni=1gcd(i,n)==xans=\sum_{x|n}x*\sum_{i=1}^n gcd(i,n)==x=>ans=∑x|nx∗∑ni=1gcd(i/x,n/x)==xans=\sum_{x|n}x*\原创 2016-12-03 21:51:16 · 302 阅读 · 0 评论 -
【jzoj4782】【Math】【线性筛法】
题目大意解题思路这里有一个小小的结论,只有i*j是完全平方数时d是奇数,可以求出i的非完全平方因子p,奇数的个数即为m/p−−−−√\sqrt{m/p},p可以用线筛来预处理。code#include<set>#include<cmath>#include<cstdio>#include<cstring>#include<algorithm>#define LF double#defin原创 2016-09-23 21:29:13 · 334 阅读 · 0 评论 -
【jzoj4860】【分解数】【线性筛法】
题目大意给出一个数,每次可以分成两个互质的数,求可以分解多少次。解题思路其实就是求不同的质因子个数,可以用线筛求出每个数的前驱来分解质因数,因为卡空间所以要牺牲时间来换空间少存一些值。code#include<set>#include<cmath>#include<cstdio>#include<cstring>#include<iostream>#include<algorithm>#原创 2016-11-07 22:36:58 · 365 阅读 · 0 评论 -
【快速傅立叶变换fft&数论变换ntt学习小记】
概述fft(快速傅立叶变换)是用来解决多项式乘法的nlog(n)算法,它的主要思想是先把多项式的多项式表达法转化成若干个二维点对(x,y)(点值),把相同x的y乘起来(计算),最后利用这些点对计算出多项式的多项式表达法的系数(插值)。这中间使用了n次单位复数根的一些特殊性质,采用分治的思想快速地完成点值和插值。n次单位复数根要想理解fft,首先要知道n次单位复数根有哪些神奇的性质。定义n次单位复数根原创 2016-12-09 21:56:20 · 1034 阅读 · 0 评论 -
【jzoj4919】【神炎皇】【数论】
题目大意对于一个整数对(a,b),若满足a+b<=n且a+b是ab的因子,则成为神奇的数对。请问这样的数对共有多少呢?解题思路设gcd(a,b)=k,a’=a/k,b’=b/k。a+b<=n&&a+b|ab=>(a’+b’)k<=n&&(a’+b’)k|a’b’k^2。gcd(a’,b’)=1=>gcd(a’+b’,a’)=gcd(a’+b’,b’)=1=>gcd(a’+b’,a’b’)=1=>(a原创 2016-12-11 17:39:39 · 720 阅读 · 0 评论 -
【jzoj4668】【腐败】【数论】【快速乘】
题目大意给出一个序列,求两两gcd的积。解题思路可以发现每个质数对答案贡献是独立的,分解质因数后发现数是无序的,排序后可以用前缀和求答案,排序可以用计数排序,快速幂可以放在分解质因数的循环里,还有模数较大,要用快速乘,类似快速幂。code#include<set>#include<cmath>#include<cstdio>#include<cstring>#include<algorith原创 2016-07-20 22:08:12 · 428 阅读 · 0 评论 -
【jzoj4888】【最近公共祖先】
题目大意n层的满k叉树T,求对于每一对(i,j)(1≤i,j≤T的点数),LCA(T,i,j)的深度的和是多少。这个数字n层的满k叉树指一棵带标号的有根树,深度为i(0≤i解题思路显然得出ans=∑n−1i=1i∗ki∗(((kn−i−1)/(k−1))2−k∗((kn−i−1−1)/(k−1))2)ans=\sum_{i=1}^{n-1}i*k^i*(((k^{n-i}-1)/(k-1))^2-k原创 2016-11-12 21:50:06 · 321 阅读 · 0 评论 -
【jzoj4786】【小a的强迫症】
题目大意解题思路按颜色添加,显然一定要有一粒在最后,其他的用隔板原理就可以算出。code#include<set>#include<cmath>#include<cstdio>#include<cstring>#include<algorithm>#define LF double#define LL long long#define max(a,b) ((a>b)?a:b)#def原创 2016-09-23 21:38:40 · 314 阅读 · 0 评论 -
【jzoj4755】【快速荷叶叶变换】
题目大意解题思路可以发现∑ni=1∑mj=1(nmodi)∗(mmodj)\sum_{i=1}^{n}\sum_{j=1}^{m}(n\mod i)*(m\mod j)=>∑ni=1(nmodi)∗∑mj=1(mmodj)\sum_{i=1}^{n}(n\mod i)*\sum_{j=1}^{m}(m\mod j)∑ni=1(nmodi)\sum_{i=1}^{n}(n\mod i)=>∑ni=1(原创 2016-09-05 14:59:39 · 640 阅读 · 0 评论 -
【jzoj4709】【Matrix】
题目大意解题思路显然每个l和t的贡献是独立的,向右走就是乘一个a,向下走就是乘一个b,走到终点的a和b的个数可以算出来,系数就是走到终点的方案数,用组合数算就行了。code#include<set>#include<cmath>#include<cstdio>#include<cstring>#include<algorithm>#define LF double#define LL l原创 2016-08-18 11:39:41 · 308 阅读 · 0 评论