题目链接 题意: 思路: #include <bits/stdc++.h> using namespace std; #define LL long long const int N = 1e7; const int mod = 20101009; int n, m, mu[N + 5], p[N Read More
题目链接 题意: 思路:首先由容斥定理可得 红色箭头为反演步骤。 最后由数论分块来写。 #include <bits/stdc++.h> using namespace std; #define ll long long const int N = 50000; int mu[N + 5], p[N Read More
题目链接 题意:求∑k mod i 思路:可以化解为 所以,如何求k/i向下取整才是关键,对于一个块k/i=j,我们可以直接求i到j区间的值,i到j区间都为k/i,时间复杂度为sqrt(n)。大体如下证明方法可行性和复杂度 #include <bits/stdc++.h> using namespa Read More
题目链接 题意:求斐波那契第n项,只不过是最后m位。 思路:矩阵快速幂板子 #include <bits/stdc++.h> using namespace std; #define ll long long const int N=52; int mod=1000; struct Matrix { Read More
题目链接 题意:给定一个序列的变换,求变换r次后各项的值。 思路:矩阵快速幂+矩阵变换知识。 #include <bits/stdc++.h> using namespace std; #define ll long long const int N=52; const int mod=1000; Read More
题目链接 题意:给定进制base,和分数score,求在base进制下,有多少个数的值为score,要求不能有连续相同的数字以及前导0.计算一个数的值即为相邻两位数的差平方的和。 思路:因为score很大,所以直接dp肯定超时,但是即使对于base=6的情况,每次新添一个数score最大增加25(0 Read More
题目链接 题意:第一行矩阵为23,233,2333...给出第一列的矩阵值,求an,m。 思路:很容易想到矩阵求解 大概就是这样中间一堆都是1. #include <bits/stdc++.h> using namespace std; #define ll long long const int Read More