
数论
文章平均质量分 60
Drin_E
中山纪念中学的蒟蒻,乐于交友
展开
-
最小公倍数之和
题目大意求∑n−1i=1lcm(i,n)\sum_{i=1}^{n-1}lcm(i,n)欧拉函数∑n−1i=1lcm(i,n)\sum_{i=1}^{n-1}lcm(i,n)=n∗∑d|n∑[n−1d]i=1[gcd(i,nd)=1]∗i=n*\sum_{d|n}\sum_{i=1}^{[\frac{n-1}{d}]}[gcd(i,\frac{n}{d})=1]*i原创 2016-05-13 20:57:44 · 691 阅读 · 0 评论 -
DZY Loves Math IV
Description给定n,m,求∑ni=1∑mj=1φ(i∗j)\sum_{i=1}^n\sum_{j=1}^m\varphi_{(i*j)}mod 1e9+7 n<=100,000,m<=1,000,000,000定义sum(n,m)表示∑mi=1φ(i∗n)\sum_{i=1}^m\varphi_{(i*n)}令z(n)表示和n含有的质因子相同且指数都为1的数 则有sum(n,m)=n/原创 2016-10-03 19:02:54 · 993 阅读 · 0 评论 -
积性函数求前缀和
积性函数定义若函数f满足 a,b互质有f(a*b)=f(a)*f(b),我们则称f是积性函数。 常见的比如欧拉函数,莫比乌斯函数,都属于积性函数。积性函数求前缀和线性筛法,利用积性函数的积性,筛素数同时可以计算积性函数。 然而有些问题要求低于线性的复杂度。杜教筛同样利用积性函数的性质。 举常见的莫比乌斯函数为例。 求∑ni=1μ(i)\sum_{i=1}^n\mu(i)(1<=n<=10^原创 2016-07-21 20:29:47 · 797 阅读 · 0 评论 -
公约数
题目描述给定一个正整数,在[1,n]的范围内,求出有多少个无序数对(a,b)满足gcd(a,b)=a xor b。 n<=10^7有一个很好证却不是一下就能发现的结论若gcd(a,b)=a^b,则gcd(a,b)=a^b=a-b证明:gcd(a,b)<=a-b,a^b>=a-b,然后就可以得到结论了。 根据结论我们就可以枚举(a-b)的值,因为gcd(a,b)=a-b,(假设a>b)所以a=k(原创 2016-08-20 11:11:17 · 773 阅读 · 0 评论 -
51nod区间的价值
题目描述我们定义“区间的价值”为一段区间的最大值*最小值。 一个区间左端点在L,右端点在R,那么该区间的长度为(R-L+1)。 现在聪明的杰西想要知道,对于长度为k的区间,最大价值的区间价值是多少。 当然,由于这个问题过于简单。 我们肯定得加强一下。 我们想要知道的是,对于长度为1~n的区间,最大价值的区间价值分别是多少。 数据范围1题目特别强调了ai的值是随机的,这就是在提示原创 2016-08-19 21:05:55 · 1107 阅读 · 0 评论 -
51nod 1586 约数和
题目描述有三个下标从1到n的数组a、b、c。 a数组初始全为0。 b[i]=∑j|ia[j],c[i]=∑j|ib[j]b[i]=∑_{j|i}a[j] ,c[i]=∑_{j|i}b[j] 需要进行下列操作: 1 x y :将a[x]加上y 2 x :询问当前c[x]的值数据范围(1<=n,q<=1,000,000,x随机,1<=x<=n,1<=y<=10^6)考虑用a表示cc[i]=原创 2016-08-17 22:47:12 · 525 阅读 · 0 评论 -
51nod 1613 翻硬币
题目描述有 n 个硬币,一开始全部正面朝上,每次可以翻转 k 个硬币( k 小于 n ),那么至少要 p 次翻转,才能让所有硬币反面朝上,求 p 的值。如果不能成功翻转则输出-1 数据范围 n,k (1 <= n <= 10^9, 1 <= k <= 10^9)。看数据范围就知道,复杂度应该为O(1)本题的精髓在于对奇偶性的讨论。 情况1:若 n 为奇数—— 1.1 若 k 为偶数 =>原创 2016-08-18 11:29:47 · 668 阅读 · 0 评论 -
小Y的数论题
题目描述小Y喜欢研究数论,并且喜欢提一些奇怪的问题。 这天他找了三个两两互质的数a, b, c,以及另一个数m, 现在他希望找到三个(0, m)范围内的整数x, y, z,使得 (x^a+y^b) Mod m=(z^c) Mod m 有T组询问 1 <= T <= 100000 1 <= a, b, c <= 10^9 3 <= m <= 10^9做法很机智考虑这样的式子 2^ka原创 2016-08-18 11:20:40 · 516 阅读 · 0 评论 -
51nod 1246 罐子和硬币
题目描述有n个罐子,有k个硬币,每个罐子可以容纳任意数量的硬币。罐子是不透明的,你可以把这k个硬币任意分配到罐子里。然后罐子被打乱顺序,你从外表无法区别罐子。最后罐子被编上号1-n。每次你可以询问某个罐子,如果该罐子里有硬币,则你可以得到1个(但你不知道该罐子中还有多少硬币),如果该罐子是空的,你得不到任何硬币,但会消耗1次询问的机会。你最终要得到至少c枚硬币(c <= k),问题是给定n,k,c,原创 2016-08-18 10:09:13 · 532 阅读 · 0 评论 -
51nod 1491 黄金系统
题目描述q=(√5+1)/2,在黄金系统下面a0a1…an等于 ∑ni=0ai∗qn−i\sum_{i=0}^na_i*q^{n-i} ,其中 ai 是0或者1。 现在给出两个黄金系统下面的数字a和b,请比较他们的大小。 n<=10^5类斐波那契数q2=(√5+1)2/4=(5+1+2√5)/4=(3+√5)/2=1+(1+√5)/2=1+qq^2=(√5+1)^2/4=(5+1+2√5)/4=原创 2016-08-17 21:02:57 · 868 阅读 · 0 评论 -
Math(CC PARSIN)
题目大意给出m,n和一个两位小数x。 求∑k[1]+k[2]+...+k[m]=nΠmi=1sin(k[i]∗x)\sum_{k[1]+k[2]+...+k[m]=n}\Pi_{i=1}^msin(k[i]*x) n<=10^9,m<=30这题真的是道数学题首先考虑一个简单的dp 设f[i][j]表示i=∑jl=1k[l]i=\sum_{l=1}^jk[l]时所有情况的和 容易想到一个简单的原创 2016-08-16 17:11:38 · 618 阅读 · 0 评论 -
快速求素数个数
问题:求1~n出现了多少个素数。线性做法很简单,直接筛就好了。 可是如果n大一点,比如大于10^9,线性做法就挂了。 大千世界无奇不有,就有比线性更快的做法。洲阁筛法网上关于这个的讲解真的好少。原创 2016-07-24 20:47:08 · 2319 阅读 · 0 评论 -
组合数的一些性质
众所周知,当n,m在自然数集中有 Cmn=n!m!(n−m)!C_n^m=\frac{n!}{m!(n-m)!} 由此可证得Cmn=Cmn−1+Cm−1n−1C_n^m=C_{n-1}^m+C_{n-1}^{m-1} 而Cm−n=−(1)mCn+m−1mC_{-n}^m=-(1)^mC_{n+m-1}{m} 是否也能用两个组合数来表示Cm−nC_{-n}^m 答案是肯定的。 容易猜想Cm原创 2016-06-28 20:50:02 · 2449 阅读 · 0 评论 -
组合数的推广
一直只以为组合数只是用于自然数集。后来发现这个世界无奇不有(简直变态)组合数CmnC_n^m下标n已经推广到实数集,m推广到整数集。 个人觉得有些部分的应用不是很广,但下标n,m在整数集的应用挺重要的,有必要了解一下。 众所周知,n,m都为自然数时有个公式 Cmn=(1)n(n−1)(n−2)...(n−m+1)m!=(2)n!m!(n−m)!C_n^m=(1)\frac{n(n-1)(n-2原创 2016-06-28 20:23:16 · 4033 阅读 · 0 评论 -
GCD
题目大意求∑ni=1∑d|ngcd(d,nd)\sum_{i=1}^n \sum_{d|n} \gcd(d,\frac{n}{d})数据范围n<=101110^{11}莫比乌斯反演题目相当于求∑ni=1∑[ni]j=1gcd(i,j)\sum_{i=1}^n \sum_{j=1}^{[\frac{n}{i} ]}\gcd(i,j)很像一道经典莫比乌斯反演题了。 设f(k)表示gcd(i,j)=k的原创 2016-05-09 12:38:30 · 1212 阅读 · 4 评论 -
欧拉函数的经典公式
证明N=∑d|Nφ(d)\sum_{d|N}φ(d)(为何我要写关于这个的博客呢,因为我问度娘,却没找到详细的证明,于是自己yy了一番) 首先我们知道当p为素数时有φ(pk)\varphi(p^k)=pk−1∗(p−1)p^{k-1}*(p-1),然后可以开始证了证:设N=ΠTi=1p[i]k[i]\Pi_{i=1}^Tp[i]^{k[i]}p[i]表示互异的素数。∑d|Nφ(d)\sum_{d|原创 2016-05-10 19:05:03 · 1889 阅读 · 0 评论