数论
文章平均质量分 69
逍遥Fau
为伊蕾娜献上心脏!
展开
-
2018CCPC桂林站 G. Greatest Common Divisor (gcd 差分 质因数分解)
题目链接: Greatest Common Divisor大致题意给定一个长度为nnn的序列, 可以执行任意多次操作: 给所有位置的数值+1.问: 最少执行多少次操作, 使得gcd({a1,a2,...,an})≠1gcd(\{ a_1, a_2, ..., a_n \}) \ne 1gcd({a1,a2,...,an})=1. 若无解则输出−1-1−1.解题思路差分这类区间加 且 求gcdgcdgcd的题目, 我们比较容易的想到转化成差分的思路进行求解.对于本题而言, 每次是使区间原创 2022-01-24 15:01:11 · 482 阅读 · 0 评论 -
HDU6237 A Simple Stone Game (思维 数学)
题目链接: A Simple Stone Game大致题意给定nnn堆石子, 第iii堆有aia_iai个.你可以执行任意次操作, 每次选择编号为iii和jjj的石子堆, 表示把一个石子从第iii堆挪到第jjj堆.问: 至少执行多少次操作, 才能使得gcd({a1,a2,..,an})>1gcd(\{ a_1, a_2, .., a_n \}) > 1gcd({a1,a2,..,an})>1解题思路思维我们简化一下题意, 相当于最后a1,a2,..,ana_1, a_原创 2021-09-24 15:53:10 · 123 阅读 · 0 评论 -
Codeforces1295D Same GCDs (欧拉函数)
题目链接: Same GCDs大致题意给定a,ba, ba,b. 问有多少个x,x∈[0,m−1]x, x\in[0, m - 1]x,x∈[0,m−1] 满足gcd(a,b)=gcd(a+x,b)gcd(a, b) = gcd(a + x, b)gcd(a,b)=gcd(a+x,b).解题思路思维 + 欧拉函数等式: gcd(a,b)=gcd(a+x,b)gcd(a, b) = gcd(a + x, b)gcd(a,b)=gcd(a+x,b).令d=gcd(a,b)d = gcd(a, b)d原创 2021-09-06 20:09:18 · 158 阅读 · 2 评论 -
Codeforces1557C Moamen and XOR (组合数学 思维)
题目链接: Moamen and XOR大致题意给定n和k. 让你构造出一个长度为nnn的序列a[], 每个元素小于2k2^k2k.要求序列满足 a1a_1a1 & a2a_2a2 & a3a_3a3 & … & ana_nan ≥ a1a_1a1 ⊕ a2a_2a2 ⊕ a3a_3a3 ⊕ … ⊕ ana_nan问: 一共有个满足要求的序列.解题思路思维下文提到的数字请看做二进制的形式!!! 为了简便叙述, 记andandand为原原创 2021-08-10 11:06:16 · 260 阅读 · 2 评论 -
UCF Local Programming Contest Round 1A E.Sum of a Function (思维 数论)
题目链接: Sum of a Function大致题意定义: f(x) = x的最小质因子给出l r k 求[l, r]区间中, 最小的k个f(x)之和. 其中r - l ≤ 1E6, k <= 0.9 * (r - l + 1)解题思路首先我们应当抓住k的取值范围, 最大是区间长度的0.9倍. 我们应当认为这是个有用的条件, 否则给出我们限制不就没意义了吗?此时我们可以产生一个合理的猜想: 由于我们要最小的k个f(x)相加, 那有一些比较大的质数我们应当可以直接舍弃掉, 但如何去判断呢?原创 2021-07-25 16:28:16 · 115 阅读 · 0 评论 -
牛客 又一道 GCD 问题(求约数)
题目链接: 又一道 GCD 问题大致题意略解题思路把给出的数字求出所有约数, 然后从大到小枚举当前拥有当前约数的数字个数是否满足要求即可.这里提一点, 分解质因数 和 求所有约数 的函数写法很相似, 复杂度最坏也都是 O(√n). 但是两者是有本质却别的.AC代码#include <bits/stdc++.h>#define rep(i, n) for (int i = 1; i <= (n); ++i)using namespace std;typedef long原创 2021-05-14 20:54:21 · 161 阅读 · 0 评论 -
Happy 2006 (欧拉函数 + 思维)
题目链接: Happy 2006大致题意给定n和k, 询问从1开始, 第k个与n互质的数是多少.解题思路首先, 设1~n中与n互质的数个数为num, 那么[n + 1, 2n]中与n互质的数的个数也一定为num.因此我们只需要用欧拉函数求出num, 然后判断k在第几个区间即可.关于数据范围, 其实最极端的情况就是, n = 2, k = 1E9的情况了, 这时候答案只有2E9的范围, 不会爆int.AC代码//头文件#define rep(i, n) for (int i = 1; i &原创 2021-04-23 23:08:23 · 336 阅读 · 0 评论 -
Trailing Loves (or L‘oeufs?)
题目链接: Trailing Loves (or L’oeufs?)大致题意求n!在b进制下表示的数末尾0的数量.解题思路如果没有做过: 求n的阶乘在10进制下末尾0的个数, 推荐先去学习一下这个题然后再来.我们已经知道如果想求n!在10进制下末尾0的个数, 实际上就是把n!质因数分解, 看看里面2和5的数目(其实就是5的数目). 那么为什么我们需要知道2和5的数目呢?根据唯一分解定理我们可以得知, 每一个数字都可以为一拆分为x个质数连乘的形式, 而10 = 2 * 5. 只有质数2和质数5相乘原创 2021-03-26 08:45:31 · 124 阅读 · 0 评论 -
Floor and Mod(思维)
题目链接: Floor and Mod大致题意给定x与y, 要求找到一对数(a, b), 满足**⌊a / b⌋ == a % b** 并且 a ∈ [1, x], b ∈ [1, y].解题思路这里是官方题解的搬运工, 感觉官方的正解很简洁且好理解.首先 ⌊a / b⌋ == a % b 可以转化为 ⌊a / b⌋ == a % b (b > k)进而得出 a = kb + k , 由于 b > k 因此我们得出 (a = kb + k) ∈ (k2, x].我们发现, 如果我原创 2021-02-15 14:36:34 · 606 阅读 · 2 评论 -
Codeforces1349A Orac and LCM (数论)
题目链接:Orac and LCM大致题意给定长度为n的序列a, 把所有满足i < j的位置求最大公约数lcm(ai, aj), 然后放入一个集合中.最终求集合中所有元素的最大公约数.解题思路首先序列长度会有1E5, 一个个暴力求取是不可行的. 不如从每个数字贡献的角度去思考.我们现在考虑a1: 对于第一个位置的数字, 他会与后面的所有的数求lcm, 最终这些数字会参与到最后的gcd运算中.接下来的思路以唯一分解定理所得到的质数角度去考虑, 两个数求lcm, 相当于相互补全不足的质因子原创 2021-01-13 20:44:40 · 365 阅读 · 2 评论 -
Same GCDs(欧拉函数)
题目链接:Same GCDs大致题意给定两个数n和m, 其中保证n < m.问存在多少个整数x(0 ≤ x < m), 使得gcd(a, m) = gcd(a + x, m);解题思路本题是对欧拉函数的考察. 难点在于给定等式的变形.首先因为a和m都是给定的, 所以不妨令常量 d = gcd(a, m) = gcd(a + x, m);由于gcd(a, b) = gcd(b, a % b), 所以 gcd(a + x, m) = gcd((a + x) % m, m) = d把*原创 2021-01-13 19:05:54 · 403 阅读 · 3 评论 -
A Number Theoretical Problem
题目连接: A Number Theoretical Problem大致题意:给出一个整数x 和 质数p, 让你找到一个整数y满足 (x * y) % p == 1.如果找到则输出y % p的结果, 否则输出 -1;解题思路:与费马小定理和除法逆元有关由除法逆元可知: (a / b) == a * bp-2 % p == 1此时应该有: a * bp-2 == x * y; 而 b == a % p所以得出y == xp-2 % p; 而我们只需要判断是否满足逆元条件即可.AC代码:原创 2020-06-30 12:07:26 · 3940 阅读 · 0 评论