数论
Tizzii
这个作者很懒,什么都没留下…
展开
-
c++ 函数 log()
log()log() 是以10 为底 。 log(10) = 1-若想变成以m为底: log(10) / log(m) 即可。原创 2020-02-10 15:22:54 · 2801 阅读 · 1 评论 -
Codeforces #619 (Div. 2) A Three Strings B Motarack's Birthday C Ayoub's function
A只要a[i]和b[i]其中有一个与c[i]相等,那么可以直接用c[i]替换另外一个。 若都不相等无法替换。(必须替换n次)#include <cstdio>#include <cstring>using namespace std;const int N = 105;int n;char a[N], b[N], c[N];bool ok() { in...原创 2020-02-14 13:40:03 · 458 阅读 · 0 评论 -
Cut and Paste CodeForces - 1281C
一、内容We start with a string s consisting only of the digits 1, 2, or 3. The length of s is denoted by |s|. For each i from 1 to |s|, the i-th character of s is denoted by siThere is one cursor. The cu...原创 2019-12-18 19:00:14 · 540 阅读 · 3 评论 -
Make Them Odd CodeForces - 1277B
一、内容题意:将所有的偶数都变成奇数,问最少需要多少步。每次选定一个偶数,然后所有相同的数都除2.二、思路如果当前的数不是偶数,就用map记录当前偶数,如果已经访问过就不用再除2了,如果没有访问过那么就一直除2。三、代码#include <cstdio>#include <unordered_map>#include <algorithm>u...原创 2019-12-17 18:15:17 · 409 阅读 · 0 评论 -
Codeforces 1277D. Let's Play the Words?
一、内容题意:给定几个01二进制字符串,问你可以翻转任意的字符串,让所有的字符串能够拼接起来,且所有的串都是惟一的(不重复)。二、思路用map记录某个串是否存在,如果存在就进行翻转,如果翻转后还存在那么不合法。0–0 1—1 这种字符串字节拼接在0—1 或者1—0的前面后面即可,所以我们统计出01,10,11,00开头结尾的字符串的个数,然后分情况讨论输出-1的情况: 当00,11存在...原创 2019-12-17 16:59:18 · 594 阅读 · 0 评论 -
Beautiful Rectangle CodeForces - 1277F
一、内容题意:凑出每行每列的元素都不相同的最大矩阵(元素最多)。二、思路由于每行不能一样,所以我们选取i行,那么最多可以选取i个相同的值。 列可以随意增加,行需要限制一下。三、代码#include <cstdio>#include <algorithm>using namespace std;const int N = 4e5 + 5;struct n...原创 2019-12-16 12:08:58 · 507 阅读 · 2 评论 -
233 Matrix HDU - 5015 递推+矩阵快速幂
一、内容二、思路首先我们推一下从第一列得到第二列的结果:[..................][23a【1】a【2】a【3】...a【K】]=[233a【1】+233a【1】+a【2】+233a【1】+a【2】+a【3】+233...a【1】+a【2】+a【3】+....+a【K】+233]=[10∗a【0】+3a【1】+10∗a【0】+3a【2】+a【1】+10∗a【0】+3a【3...原创 2019-11-15 13:49:46 · 659 阅读 · 0 评论 -
Matrix Power Series POJ - 3233 矩阵快速幂+分治
一、内容二、思路我们规定f(A, k) 这个函数为求A + A2 + A3 … Ak 的值当k为偶数时:S = A + A2 + A3 … Ak = (A + A1…Ak/2) + (Ak/2+1+…Ak) = (A + A1…Ak/2) +Ak/2(A + A1…Ak/2) = (1 + Ak/2) * (A + A1…Ak/2) = (1 + Ak/2) * f(A, k / ...原创 2019-11-14 19:43:33 · 635 阅读 · 0 评论 -
Fibonacci POJ - 3070 矩阵快速幂
一、内容二、思路利用矩阵相乘获取结果。[F 0 ,F 1 ]∗[0111]=[F 1 ,F 2 ]\left[\begin{matrix} F~0~ ,& F~1~ \end{matrix} \right] * \left[\begin{matrix} 0 & 1 \\ 1 &a...原创 2019-11-14 11:19:15 · 397 阅读 · 0 评论 -
【模板】 求解高次同余方程
一、内容给定整数a, b, p, 其中a,p互质, 求一个非负整数x, 使得 ax ≡ b (mode p)二、代码typedef long long ll;int qpow(int a, int b, int p) { int ans = 1; while (b) { if (b & 1) ans = (ll)ans * a % p; a = (ll)a * a %...原创 2019-11-14 09:32:18 · 566 阅读 · 0 评论 -
Longge's problem POJ - 2480
一、内容二、思路通过打表我们可以发现,gcd(i, N)的结果都N的约数,那么我们便可以从此出发。我们枚举 N的所有约数,设d为N的某一个约数,那么1~N中有gcd(i,N) == d,我们将数都除以一个d,那么就等于gcd(i/d, N/d) = 1, 故我们只需要求解出【1,N/d】 范围内和N/d互质的数(欧拉函数)。那么题目就转化为: 枚举所有约数d, 求 phi(N/ d)的...原创 2019-11-13 17:09:31 · 323 阅读 · 0 评论 -
BZOJ 2818
一、内容题意:给定整数N,求1<=x,y<=N且GCD(x,y)为素数的数对(x,y)有多少对。二、思路因为我们求的是gcd(x, y) 为质数, 可以看出当d为质数时, 1d, 2d, 3d,4d,5d… gcd(x, y) = d, 那么x, y必然是其中的数,我们将所有的数都除以d, 那么变成1,2,3,4…n/d, 这时候gcd(x/d, y/d) = 1。故我们只...原创 2019-11-12 20:09:48 · 266 阅读 · 0 评论 -
青蛙的约会 POJ - 1061
一、内容两只青蛙在网上相识了,它们聊得很开心,于是觉得很有必要见一面。它们很高兴地发现它们住在同一条纬度线上,于是它们约定各自朝西跳,直到碰面为止。可是它们出发之前忘记了一件很重要的事情,既没有问清楚对方的特征,也没有约定见面的具体位置。不过青蛙们都是很乐观的,它们觉得只要一直朝着某个方向跳下去,总能碰到对方的。但是除非这两只青蛙在同一时间跳到同一点上,不然是永远都不可能碰面的。为了帮助这两只乐...原创 2019-11-12 19:10:43 · 833 阅读 · 0 评论 -
古代猪文
一、内容二、思路欧拉定理费马小定理Lucas定理中国剩余定理三、代码#include <cstdio>typedef long long ll;const int N = 5e4, MOD = 999911659;ll n, q;ll jc[N], a[5]; //记录余数 int pri[4] = {2, 3, 4679, 35617};void i...原创 2019-11-12 15:16:00 · 647 阅读 · 0 评论 -
【模板】中国剩余定理
#include <cstdio>typedef long long ll;int a[20], m[20], t;ll qmul(ll a, ll b, ll m) { ll ans = 0; while (b) { if (b & 1) ans = (ans + a) % m; a = (a << 1) % m; b >>= 1...原创 2019-11-12 10:51:26 · 425 阅读 · 0 评论 -
Strange Way to Express Integers POJ - 2891
一、内容Elina is reading a book written by Rujia Liu, which introduces a strange way to express non-negative integers. The way is described as following:Choose k different positive integers a1, a2, …, ...原创 2019-11-10 16:09:09 · 390 阅读 · 0 评论 -
The Luckiest number POJ - 3696
一、内容题意:问至少多少个8连在一起是L的倍数。二、思路x个8连在一起组成的正整数我们可以写作 8 *(10x - 1) / 9 , 题目让我们求最小的x满足 L | 8(10x - 1)/ 9。a | b : b是被除数,a是除数,代表b能被a整除。 等同于 b / a。我们设 d = gcd(L , 8) , 那么 L | 8(10x - 1)/ 9 ===== ...原创 2019-11-09 11:19:14 · 361 阅读 · 0 评论 -
线性欧拉函数 O(N)
一、单个数的欧拉函数 O(N\sqrt{N}N)#include <cstdio>int phi(int n) { int ans = n; for (int i = 2; i <= n / i; i++) { if (n % i == 0) { ans = ans / i * (i - 1); while (n % i == 0) n /= i; ...原创 2019-11-05 11:55:42 · 663 阅读 · 0 评论 -
Prime Distance POJ - 2689
一、内容题意:给定一个区间【L, R】 求在这个区间里面相邻2个质数的差值最小,差值最大 。二、思路由于【L, R】的值可能很大,目前已知的筛法都无法在规定时间内完成,但是R - L的值很小,并且任何一个合数N必定包含一个不超过N\sqrt{N}N的一个质因子,故我们只需要用2~N\sqrt{N}N内质因子筛出【L, R】内的质数。离散化:由于L,R 过大,所以我们通过当前数为i减去...原创 2019-11-06 18:41:49 · 288 阅读 · 0 评论