
数论
文章平均质量分 58
PoPoQQQ
这个作者很懒,什么都没留下…
展开
-
BZOJ 1041 HAOI2008 圆上的整点 数论
题目大意:给定一个半径为为r的圆x^2+y^2=r^2,求圆上多少个点的坐标为整数卡了很久的一道题。。。我之前用了两个公式,理论上可以O(√n)出解,可惜这两个公式并不能涵盖所有勾股数。。。于是去找了下题解,发现这样一种方法:x^2+y^2=r^2化简为 y^2=(r-x)(r+x)我们令d=gcd(r-x,r+x)则(r-x)/d与(r+x)/d一定互质,二者相乘为完全平原创 2014-10-08 16:36:55 · 3695 阅读 · 5 评论 -
BZOJ 2613 Poi2003 Shuffle 数论
题目大意:给定一个长度为nn的置换bb和一个正整数kk, 求一个置换aa,使得ak=ba^k=b要做这个题首先我们需要知道aka^k是什么 想象一个长度为LL的循环,如果我们将这个循环求kk次方,我们将会得到Gcd(L,k)Gcd(L,k)个长度为LGcd(L,k)\frac L{Gcd(L,k)}的循环 那么现在我们将bb分解成循环,假如现在我们得到了一个长度为L′L'的循环,那么由之前的原创 2015-05-25 20:55:22 · 1818 阅读 · 0 评论 -
codeforces #271E Three Horses 数论
题目大意:有一种卡片,正面和背面各写着一个整数,可以用一个有序数对(x,y)(x,y)表示 有三种操作: 1.出示一张卡片(x,y)(x,y),获得一张卡片(x+1,y+1)(x+1,y+1) 2.出示一张卡片(x,y)(x,y(x,y)(x,y都是偶数)),获得一张卡片(x2,y2)(\frac x2,\frac y2) 3.出示两张卡片(x,y)(x,y)和(y,z)(y,z),获得一张原创 2015-05-18 17:54:36 · 1306 阅读 · 0 评论 -
BZOJ 1420&&BZOJ 1319 Discrete Roots 数论
题目大意:求方程xk≡a(mod p)x^k≡a(mod\ p)在[0,p)[0,p)区间内的全部解 取pp的一个原根gg,两侧取指标得到: k∗indgx≡indga(mod p−1)k*ind_gx≡ind_ga(mod\ p-1) 上EXGCD即可 注意a=0a=0要特判 (EXGCD已死系列……#include <cmath>#include <cstdio>#include原创 2015-04-11 15:44:55 · 1770 阅读 · 0 评论 -
BZOJ 3992 Sdoi2015 序列统计 快速数论变换
题目大意:给定n(n求原根,对S集合内每个元素取指标,然后搞出生成函数f(x)那么答案就是(f(x))^n (mod 1004535809)上NTT用多项式快速幂搞一搞就好了#include #include #include #include #define M 16400#define MOD 1004535809#define INF 0x3f3f3f3f#原创 2015-04-15 20:50:01 · 3705 阅读 · 0 评论 -
BZOJ 2721 Violet 5 樱花 数论
题目大意:给定nn,求有多少正整数数对(x,y)(x,y)满足1x+1y=1n!\frac1x+\frac1y=\frac1{n!} 由于x,y>0x,y>0,故显然有y>n!y>n! 不妨设y=n!+t(t>0)y=n!+t(t>0),那么有 1x+1n!+t=1n!\frac1x+\frac1{n!+t}=\frac1{n!} 化简后得到 n!(n!+t)+x(n!)=x(n!+t)n原创 2015-04-17 13:12:23 · 2401 阅读 · 1 评论 -
BZOJ 2671 Calc 数论
题目大意:给定NN,求∑ni=1∑nj=1[i+j|ij]1\sum_{i=1}^n\sum_{j=1}^n[i+j|ij]1 跪Nodgd= = 不妨设d=gcd(i,j),i=ad,j=bd,gcd(a,b)=1d=\gcd(i,j),i=ad,j=bd,\gcd(a,b)=1,那么有 (a+b)d|abd2(a+b)d|abd^2 即 a+b|abda+b|abd ∵gcd(a,b原创 2015-04-17 12:49:49 · 2975 阅读 · 0 评论 -
BZOJ 2401 陶陶的难题I 数论
题目大意:求∑Ni=1∑Nj=1Lcm(i,j)\sum_{i=1}^N\sum_{j=1}^NLcm(i,j) 一开始写了个莫比乌斯反演结果T到死。。。 ∑Ni=1∑Nj=1Lcm(i,j)=∑Ni=1i+2∑Ni=1∑i−1j=1Lcm(i,j)=∑Ni=1i+2∑Ni=1∑i−1j=1i∗jGcd(i,j)=∑Ni=1i+2∑Nd=1∑⌊Nd⌋i=2∑i−1j=1[gcd(i,j)=1]d原创 2015-04-08 17:14:44 · 2255 阅读 · 0 评论 -
BZOJ 3944 Sum 数论
题目大意:求∑ni=1φ(i)\sum_{i=1}^n\varphi(i)和∑ni=1μ(i)\sum_{i=1}^n\mu(i)。 n≤231−1n\leq2^{31}-1 令F(n)F(n)为f(n)f(n)的前缀和,G(n)G(n)为g(n)g(n)的前缀和,且满足g(n)=∑i|nf(i)g(n)=\sum_{i|n}f(i),则有: G(n)=∑ni=1g(i)G(n)=\sum_原创 2015-04-13 11:17:39 · 5069 阅读 · 0 评论 -
BZOJ 4173 数学 数论
题目大意:给定n,mn,m,求φ(n)∗φ(m)∗∑n%k+m%k≥kφ(k) mod 998244353\varphi(n)*\varphi(m)*\sum_{n\%k+m\%k\geq k}\varphi(k)\ mod\ 998244353 n,m≤1015n,m\leq 10^{15}我是傻逼。。。n%k+m%k≥kn\%k+m\%k\geq k等价于⌊n+mk⌋−⌊nk⌋−⌊mk⌋=1\原创 2015-07-09 18:19:18 · 3471 阅读 · 0 评论 -
BZOJ 4174 tty的求助 莫比乌斯反演
题目大意:求∑Nn=1∑Mm=1∑m−1k=0⌊nk+xm⌋ mod 998244353\sum_{n=1}^N\sum_{m=1}^M\sum_{k=0}^{m-1}\lfloor\frac{nk+x}m\rfloor\ mod\ 998244353假设nn和mm都已经确定了,现在要求这坨玩应: ∑m−1k=0⌊nk+xm⌋\sum_{k=0}^{m-1}\lfloor\frac{nk+x}m\原创 2015-07-09 19:13:24 · 3706 阅读 · 2 评论 -
BZOJ 4176 Lucas的数论 莫比乌斯反演
题目大意:给定n(n≤109)n(n\leq10^9),求∑ni=1∑nj=1d(ij)\sum_{i=1}^n\sum_{j=1}^nd(ij)推错式子害死人。。。 由d|ijd|ij等价于dgcd(i,d)|j\frac d{\gcd(i,d)}|j可得 ∑ni=1∑nj=1d(ij)\sum_{i=1}^n\sum_{j=1}^nd(ij) =∑ni=1∑n2d=1⌊n∗gcd(i,d)原创 2015-07-10 18:20:57 · 3695 阅读 · 0 评论 -
Shoi2017(六省联考)Day1题解
终于发现自己是真残了(我这句话都说了几遍了QAQ)T1:容易发现答案只与最后一科出成绩的时间有关,枚举这个时间,然后按顺序维护代价就行了。 BZ上的数据范围不对,不过影响不大,但是有一个特别坑比的点是C=1016C=10^{16},为了这个SB点卡了俩小时气都气死了#include <cstdio>#include <cstring>#include <iostream>#include <原创 2017-04-25 18:25:32 · 3029 阅读 · 5 评论 -
BZOJ 4805 欧拉函数求和 数论
题目大意:给定N≤2∗109N\leq2*10^9,求∑Ni=1φ(i)\sum_{i=1}^N\varphi(i) 同BZOJ3944 这么喜欢炒冷饭?#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>#define M 1501000using namespace std;int li原创 2017-03-31 20:58:19 · 2641 阅读 · 0 评论 -
BZOJ 4147 AMPPZ2014 Euclidean Nim 博弈论+数论
题目大意:给定nn个石子,两人轮流操作,规则如下: 轮到先手操作时:若石子数<p<p,那么只能添加pp个石子,否则可以拿走pp的倍数个石子 轮到后手操作时:若石子数<q<q,那么只能添加qq个石子,否则可以拿走qq的倍数个石子 拿走所有石子的人胜利,问先手是否必胜,或输出游戏会永远进行下去令d=gcd(p,q)d=gcd(p,q),那么若dd不能整除nn,游戏将会永远进行下去 否则将p原创 2015-06-18 16:55:18 · 2879 阅读 · 3 评论 -
BZOJ 4724 POI2017 Podzielno 数论
题目大意:给定BB和一些数字,第i(0≤i<q)i(0\leq i<q)个数有aia_i个,要求用这些数字构造一个BB进制数,数字可以不全用,要求这个数是B−1B-1的倍数且最大逗比题……定理:一个数是B−1B-1的倍数当且仅当其在BB进制下所有位之和为B−1B-1的倍数原理是a∗Bk≡a(mod B−1)a*B^k≡a (mod\ B-1)然后如果它给的所有位之和mod B−1mod\ B-1不等原创 2016-12-12 16:53:56 · 1631 阅读 · 4 评论 -
BZOJ 2219 数论之神 数论
题目大意:求在[0,p)范围内的解的个数鏼爷的题解:http://jcvb.is-programmer.com/posts/42036我只是来粘代码的QAQ指标啥的原根啥的中国剩余定理啥的真的完全不知道QAQUPD:时隔多年 在这道题被Hack过一次之后 我终于重新AC了这道题- -大致说下做法吧感觉说的这么详细不利于深刻理解- -算了看原创 2014-11-29 13:40:46 · 4278 阅读 · 8 评论 -
BZOJ 4305 数列的GCD 数论
题目大意:给定n,mn,m和一个长度为nn的数列ai..na_{i..n},其中满足1≤ai≤m1\leq a_i\leq m,对于d=1..md=1..m求数列b1..nb_{1..n}的个数,满足: 1. 1≤bi≤m1.\ \ 1\leq b_i\leq m 2. gcd(b1,b2,...,bn)=d2.\ \ gcd(b_1,b_2,...,b_n)=d 3. ∑ni=1[ai原创 2015-10-26 18:34:34 · 2644 阅读 · 0 评论 -
BZOJ 1951 SDOI2010 古代猪文 数论 Lucas定理
题目大意:给定N,G,求首先由欧拉定理易知当A与p互质时A^B %p=A^(B%φ(p) ) %p这里p是一个质数 于是φ(p)=p-1=999911658然后由于这个数不是质数 难以处理 我们将它分解质因数 然后对于每个质因数的解用中国剩余定理合并即可然后就是999911658有一个很好的性质 999911658=2*3*4679*35617 每个质因数的次数都是1次于是原创 2014-11-04 12:45:29 · 2634 阅读 · 0 评论 -
POJ 3495 Bitwise XOR of Arithmetic Progression 数论
题目大意:给定x,y,zx,y,z,求x⊕(x+z)⊕(x+2z)⊕...⊕(x+kz)x\oplus(x+z)\oplus(x+2z)\oplus...\oplus(x+kz),其中y−z<x+kz≤yy-z<x+kz\leq y困扰了我多年的心腹大患终于干掉了。。。由于异或操作中每一位彼此独立,我们可以一位一位做 对于第ii位,这一位的值为(⌊x2i⌋+⌊x+z2i⌋+⌊x+2z2i⌋+...原创 2015-07-12 22:04:26 · 2140 阅读 · 0 评论 -
BZOJ 2277 Poi2011 Strongbox 数论
题目大意:给定n和k个整数,求mod n加法下的群G的一个子群G',满足a[1]~a[k-1]都不在群中而a[k]在群中首先易证G'一定是一个循环群证明:显然若a在群中则a的逆元在群中那么我们就有了减法运算由群的封闭性可得若a和b都在群中则gcd(a,b)一定在群中不妨设g为G'中所有元素的gcd 那么群G''={0,g,2g,...}一定是G'的一个子群由于G'-原创 2015-03-03 20:26:35 · 1727 阅读 · 0 评论 -
BZOJ 3884 上帝与集合的正确用法 欧拉定理
题目大意:求2^(2^(2^(2^(2^...)))) mod p的值SB出题人被各种乱艹系列……其实是某天脑洞比较大突然想算算这东西= = 然后就发现了这个好玩的性质= =其实+∞个2看着吓人其实没啥可怕的= =#include #include #include #include #define M 10001000using namespace std;i原创 2015-02-26 11:20:22 · 11928 阅读 · 9 评论 -
BZOJ 2186 SDOI2008 沙拉公主的困惑 数论
题目大意:给定询问组数T和取模数P,每次询问给定两个整数n和m,求1~(n!)的数中与m!互质的数个个数模P (m首先T首先我们知道,若x与y互质,则x+y与y也互质,x+2y与y也互质。。。换到这道题上来说,若一个数x与m!互质,那么x+(m!)也一定与m!互质,(x+m!*2)也一定与m!互质。。。由于n!一定是m!的倍数,于是我们每存在到一个x而m!以内与m!互质的数的数原创 2014-10-10 09:28:37 · 3791 阅读 · 2 评论 -
BZOJ 3209 花神的数论题 数位DP+数论
题目大意:令Sum(i)为i在二进制下1的个数 求∏(1一道很简单的数位DP 首先我们打表打出组合数 然后利用数位DP统计出二进制下1的个数为x的数的数量 最后输出∏(1此题的坑在于这题的组合数和数位DP的结果都是指数 对指数取模不能直接取 要取Phi(p)于是我们对10000006取模 然后这题就WA了 因为10000007不是个质数!10000007=941*10627 于是我原创 2014-10-09 19:32:10 · 2196 阅读 · 0 评论 -
BZOJ 2005 NOI2010 能量采集 数论+容斥原理
题目大意:给定n和m,求Σ(1i和j的限制不同,传统的线性筛法失效了,这里我们考虑容斥原理令f[x]为GCD(i,j)=x的数对(i,j)的个数,这个不是很好求我们令g[x]为存在公因数=x的数对(i,j)的个数(注意不是最大公因数!),显然有g[x]=(n/x)*(m/x)但是这些数对中有一些的最大公因数为2d,3d,4d,我们要把他们减掉于是最终f[x]=(n/x)*(m/原创 2014-10-09 09:18:36 · 3067 阅读 · 0 评论 -
BZOJ 2142 礼物 组合数学+数论
题目大意:给定n个物品,分给m个人,每个人拿到wi个礼物,问方案数mod P P不一定为质数首先我们把剩下的礼物也分给一个人 答案明显不变 w[++m]=n-w1-w2-...-wm然后就会很方便地得到公式:ans=C(n,w1)*C(n-w1,w2)*C(n-w1-w2,w3)*...*C(n-w1-w2-...-w_(m-1),wm) mod P =n!/w1!/w原创 2014-10-08 11:17:31 · 2803 阅读 · 1 评论 -
BZOJ 2759 一个动态树好题 Link-Cut-Tree+扩展欧几里得
题目大意:给定n个形如xi=ki*x_pi+bi mod p的同余方程组 支持修改操作和求解操作确实好题 感谢此题作者 顺便吐槽一下作者的Splay不加空节点太蛋疼了0.0将每个点i的父亲设为pi 我们将会得到一座基环树林 将环上的一条边拆掉,在边的起始节点新开个域special_father记录这条边(P.S:好浪费 但是没办法)于是我们得到了一座森林 显然可以用LCT来维护 每个节原创 2014-10-24 22:57:47 · 3223 阅读 · 0 评论 -
BZOJ 2242 SDOI2011 计算器 快速幂+扩展欧几里得+BSGS
题目大意:……简洁明了自己看第一问快速幂第二问扩展欧几里得第三问BSGS顺便一开始没看到p是质数0.0 去弄了EXBSGS的模板0.0 懒得改了#include#include#include#include#include#define M 1001001using namespace std;typedef long long ll; typedef pa原创 2014-10-23 13:40:47 · 1931 阅读 · 0 评论 -
BZOJ 3629 JLOI2014 聪明的燕姿 约数和+DFS
题目大意:令f(x)=Σi (i|x) 给定n,求所有的x,使f(x)=n这题就是今年省选第二题,我没看到多组数据爆零了,不然妥妥30分。。。首先约数和公式令n=p1^a1*p2^a2*...*pk^ak则f(n)=(1+p1+p1^2+...+p1^a1)*(1+p2+p2^2+...+p2^a2)*...*(1+pk+pk^2+...+pk^ak)于是我们枚举质数p,采取D原创 2014-09-09 10:05:45 · 3592 阅读 · 7 评论 -
BZOJ2818 Gcd 素数筛+欧拉筛
题目描述:给定整数N,求1数对(x,y)有多少对.原创 2014-08-22 19:07:29 · 1851 阅读 · 1 评论 -
BZOJ 2257 JSOI2009 瓶子和燃料 数论
题目大意:给定n个瓶子,选择k个,可以随便导油,问选择k个瓶子可以导出的油数量的最小值的最大值首先易知k个瓶子能导出的油最小值一定是k个瓶子容量的最大公因数 于是问题转化成了在n个数中选择k个 使最大公因数最大找出n个数的所有因数 排序 找出最大的且出现次数大于等于k的输出即可#include#include#include#include#define M 1600100u原创 2014-11-01 12:57:32 · 2431 阅读 · 0 评论 -
BZOJ 3122 SDOI2013 随机数生成器 数论 EXBSGS
题目大意:给定一个数列X(i+1)=(a*Xi+b)%p 求最小的i>0,使Xi=t0.0 此题能1A真是太好了首先讨论特殊情况若X1=t ans=1若a=0 ans=b==t?2:-1若a=1 X1+b*(ans-1)==t (%p) 扩展欧几里得令temp=b/(a-1)则有(X(i+1)+temp)=a*(Xi+temp)Xans=(X1+temp)*原创 2014-10-21 15:47:54 · 1737 阅读 · 0 评论 -
BZOJ 3738 Ontak2013 Kapitał 数论
题目大意:求C(n+m,n)去掉末尾所有的0之后的后k位组合数取模问题……首先k将10^9分解质因数,可以得到10^9=2^9*5^9=512*1953125 这两个数都不是很大 所以直接套用组合数取模的模板具体细节参见 2142 礼物 http://blog.youkuaiyun.com/popoqqq/article/details/39891263消0的时候注意消掉2的时候要乘上相应5的原创 2014-11-28 09:35:50 · 1665 阅读 · 0 评论 -
BZOJ 2226 Spoj 5971 LCMSum 数论
题目大意:给定n,求LCM(1,n)+LCM(2,n)+...+LCM(n,n)枚举d=GCD(i,n),令F(n)为n以内与n互质的数之和则ans=Σ[d|n]d*F(d)*n/d=nΣF(d)现在就是F(n)的问题了 我们发现对于任意n>=3,如果x与n互质,那么n-x一定与n互质故n以内与n互质的数能两两凑成和为n的数对,一共φ(n)/2对,故F(n)=n*φ(n)/2注原创 2015-01-01 15:12:32 · 2349 阅读 · 0 评论 -
BZOJ 1965 AHOI2005 SHUFFLE 洗牌 数论
题目大意:给定偶数张牌,问m次洗牌之后第l张牌是多少x*2^m==l (mod n+1)x=(n/2+1)^m*l mod n+1快速幂+快速乘233#include #include #include #include #define MOD (n+1)using namespace std;typedef unsigned long long ll;long原创 2014-12-30 09:32:30 · 1982 阅读 · 0 评论 -
BZOJ 1406 AHOI2007 密码箱 数论
题目大意:给定n,求[1,n)内所有满足x^2≡1(mod n)的xx^2=kn+1x^2-1=kn(x+1)(x-1)=kn令x+1=k1n1,x-1=k2n2,其中k1k2=k,n1n2=n因此我们可以枚举n的约数中所有大于等于√n的,分别作为n1和n2代入验证最后排序去重输出即可(我偷懒用了map#include #include #include #inc原创 2015-02-02 13:21:21 · 2132 阅读 · 0 评论 -
BZOJ 3560 DZY Loves Math V 数论
题目大意:给定a1,a2,...,an,求由于φ是积性函数,我们可以将i1i2...in分解质因数,对于每个质因数分开讨论,求积即可将每个a分解质因数,假设分解后某个质数p在每个ai中的次数分别是bi,那么p对答案的贡献就是于是对p^j维护一个前缀和,直接计算即可#include #include #include #include #define MOD原创 2015-01-15 13:14:06 · 2945 阅读 · 1 评论 -
BZOJ 1408 NOI2002 Robot 数论
题目大意:- -我不行了自己看逗比题- - 用了这么大篇幅来讲述什么是φ和μ- -不过不是普通的φ和μ,有些变形- -新定义的φ(1)=0,新定义的μ只计算奇质数,含有2为因子的数都按照μ值为零处理我们首先求出第一问和第二问,即μ值不等于0的部分由于μ的定义,μ值不等于0当且仅当每个质因数的次数都是1次因此我们枚举每个奇质数 计算加上这个奇质数之后φ值之和多出来的部分由原创 2015-01-14 16:44:27 · 1905 阅读 · 0 评论 -
BZOJ 3813 奇数国 线段树+数论
题目大意:给定一个序列,每个数都由60个最小的素数的乘积构成,求某段的乘积的欧拉函数值对19961993取模后的值,支持单点修改19961993是个质数 出题人还是满贴心的利用线段树维护乘积取模后的值以及哪些素数出现过 后者用bitset维护得到的值根据bitset里出现过的素数来计算欧拉函数值时间复杂度O(nlog10W+60n)#include #include #in原创 2014-12-24 14:06:27 · 2611 阅读 · 0 评论 -
BZOJ 3834 Poi2014 Solar Panels 数论
题目大意:给定a,b,c,d,多次询问a考虑枚举n=Gcd(x,y),那么[a,b]和[c,d]两个区间内存在n的倍数当且仅当floor(b/n)>floor((a-1)/n)且floor(d/n)>floor((c-1)/n)ぽい由于后面的式子最多有O(√max(b,d))个取值,因此枚举商就可以了ぽい1L和2L写了啥ぽい- -#include #include #inclu原创 2015-01-12 19:45:06 · 1621 阅读 · 0 评论