数论
TriAzure
靡不有初,鲜克有终。
展开
-
C - Aladdin and the Flying Carpet | 分解质因数 | 算术基本定理 | 数论 | 素数(疑问待解决)
题目大意是,给你两数x, y乘积和,与x,y所有取值情况中最小的可能的值,求x,y有多少种可能的情况。(也就是分解质因数) 算术基本定理:每个正整数都可以被唯一地写成素数的乘积(此时素数根据其大小按照升序排列)。 关于getprime()函数 - 素数的线性筛法 预处理,先找出1e6以内的所有素数。因为题目范围里area是1e12,所以最大的质因数就是1e6。注意要写在for(, t,...原创 2019-07-31 08:59:03 · 165 阅读 · 1 评论 -
A - Bi-shoe and Phi-shoe | 数论 | 欧拉函数Euler Function
欧拉函数 最开始想的肯定是打表找规律,发现没啥规律(因为上次那个差分序列的题还写了半天出现一次出现两次出现四次)。 意思就是已知某数字与它互质且小于它的数共有m个,求在所有符合情况的数字中最小的那一个。我想把phi[a] = p记录下来,然后按照p排序,return a,最后将所有值相加。但是实现的时候比较麻烦,因为p不是连续的,而且也不单调,怎么确定最小的a就很难搞。这种思路硬搞也可以的题解 卡...原创 2019-07-22 21:09:42 · 111 阅读 · 0 评论 -
E - Leading and Trailing | 数论 | 快速幂
For each case, print the case number and the three leading digits (most significant) and three trailing digits (least significant). 题意:给你n k,要求求出n^k的前三位数和后三位数。n k会很大,直接算肯定不行,而写大数模拟的话肯定会T。所以需要数学知识来简化...原创 2019-07-27 09:17:47 · 113 阅读 · 0 评论 -
POJ 3070 Fibonacci | 矩阵快速幂 | 斐波那契
要求Fn,也就是右上角的a[0][1] #include <iostream> #include <cstring> #include <cstdio> using namespace std; /*矩阵快速幂*/ #define ll long long const int MOD = 10000; struct mat { ll a[2][2]...原创 2019-08-01 10:28:20 · 91 阅读 · 0 评论 -
HDU 6033 Add More Zero | 数论 (位数疑问待解决)
题意:一台计算器支持[0, 2m-1]之间的整数的运算,现在给出m,求满足计算器运算条件的最大的10k,输出k。也就是已知m,求使得10k不超过2m-1的最大的k。 10k <= 2m-1 k = m * log102 #include <bits/stdc++.h> using namespace std; #define ll long long #define endl...原创 2019-08-08 09:35:06 · 96 阅读 · 0 评论 -
组合数 逆元 同余
运算律 内容 交换律 ((a+b)%p=(b+a)%p)((a*b)%p=(b*a)%p) 结合律 (((a+b)%p+c)%p=(a+(b+c)%p)%p)(((a*b)%p*c)%p=(a*(b*c)%p)%p) 分配律 (((a+b)%p*c)%p=((a*c)%p+(b*c)%p)%p)((a*b)%p=(a%p*b%p)%p)((a+b)%p=(a%p+b%p)%p...转载 2019-08-01 21:43:49 · 195 阅读 · 0 评论