随笔分类 - 数论
摘要:题解:http://blog.csdn.net/PoPoQQQ/article/details/46820313 代码: 1 #include<iostream> 2 #include<cstdio> 3 #include<cstring> 4 #include<algorithm> 5 #incl
阅读全文
摘要:直接分块就行了。注意要求出2和6的逆元。 代码: 1 #include<iostream> 2 #include<cstdio> 3 #include<cstring> 4 #include<cmath> 5 using namespace std; 6 #define M 19940417 7 i
阅读全文
摘要:其实就是卡特兰数的定义。。。 将放置一个1视为(1,1),放置一个0视为(1,-1) 则答案就是从(0,0)出发到(n+m,n-m)且不经过y=-1的方案数。 从(0,0)出发到(n+m,n-m)的总方案数是C(n+m,n)。 若一条路径经过y=-1,那么将其从(0,0)到y=-1的一段路径以y=-
阅读全文
摘要:题目大意: B进制数,每个数字i(i=0,1,...,B-1)有a[i]个。你要用这些数字组成一个最大的B进制数X(不能有前导零,不需要 用完所有数字),使得X是B-1的倍数。q次询问,每次询问X在B进制下的第k位数字是什么(最低位是第0位)。 思路:由于如下定理: a*Bk≡a (mod (B-1
阅读全文
摘要:推导: 设d=gcd(i,j) 利用莫比乌斯函数的性质 令sum(x,y)=(x*(x+1)/2)*(y*(y+1)/2) 令T=d*t 设f(T)= T可以分块。又由于μ是积性函数,积性函数的约束和仍是积性函数,所以f也是积性函数,可以O(n)线性筛求得。总时间复杂度为 具体筛法看代码。 代码:
阅读全文
摘要:题目大意: 给定N, M,求1<=x<=N, 1<=y<=M且gcd(x, y)为质数的(x, y)有多少对。 推导: 设n<=m ans= = 由于gcd(i,j)==1等价于 ans= = 令 T=pt 则ans= 设f(T)= 则f(T)可以用线性筛O(n)预处理出来。 ans= 分块就可以了
阅读全文

浙公网安备 33010602011771号