区域赛数学练习

开始刷历年区域赛的题

CCPC2018-Hangzhou B Master of Phi

传送门
积性函数 + 欧拉函数
\(\sum_{d|n}\phi(d)\times \frac{n}{d} \mod 998244353\)
已知\(n = \prod_{i = 1}^mp_i^{q_i}\)带入,
根据公式$$\sum_{d|\prod_{i = 1}mp_i{q_i}} \prod_{i = 1}mp_i = \prod_{i = 1}m(\sum_{d|p_i{q_i}} p_i^{q_i})$$
进行化简就有
\(\prod_{i = 1}^m(\sum_{d|p_i^{q_i}}\phi(d)*\frac{p_i^{q_i}}{d})\)
那么计算每一个\(\sum_{d|p_i^{q_i}}\phi(d)*\frac{p_i^{q_i}}{d}\),然后乘起来即可
进行化简
\(\sum_{d|p_i^{q_i}}\phi(d)*\frac{p_i^{q_i}}{d} = \phi(1) * p^q + \sum_{i = 1}^q * \frac{\phi(p^i)*q^q}{p^i}\)
\(=p^q + \sum_{i = 1}^q(p - 1)p^{i - 1}\frac{p^q}{p^i}\)
\(=p^{q - 1}(p + pq - q)\)
那么对于每一个p和q,只需要\(p^{q - 1}(p + pq - q)\)即可,最后把m个数字乘起来就是答案

CCPC2018-Hangzhou C Hakase and Nano

博弈论

有两个人轮流取,n堆石头,至少拿一个,最多拿一堆,Hakase进行两次操作,Nano进行一次
d = 1表示Hakase先,否则Nano先
考虑d = 1时,只有n是3的倍数且都是1的话,Hakase必输,因为其他情况,Hakase都可以使得其变成两堆石头,其中1堆是1,另一堆是任意数字,那么Hakase就赢了

考虑d = 2时,将问题转化为Nano怎么取,那么问题就变成了d = 1的情况
如果n%3 = 1,且至少有n - 1个1,那么Nano取走后变成全1,那么就变成了上面的情况。
或者n % 3 = 0,但是又n - 1个1,那么Nano只取走后变成全1,那么就变成了上面的情况

CCPC2018-Hangzhou J Master of GCD

差分 + gcd
传送门
开始序列都是1
区间乘法,乘2或者3
最后求出所有数字的gcd.
然后我直接线段树取模,wa了。
哈哈哈哈,求gcd前不能取模
差分统计2和3出现的个数,然后取最小个数就行了

CCPC2018-Hangzhou L Mod, Xor and Everything

类欧几里得算法 + 异或
和这题很像

\(\lfloor\frac{n \mod i}{2^k} \rfloor \mod 2\)

\(\lfloor\frac{n - i * \lfloor\frac{n}{i}\rfloor}{2^k}\rfloor \mod 2\)

但考虑到类欧几里得的系数a和b不能是负数

CCPC2018-Hangzhou

分治NNT + 容斥

2017ACM/ICPC亚洲区沈阳站 - Heron and His Triangle

传送门
三角形三条边是\(t-1,t,t+1\)
\(t≥n\)且三角形面积是整数,求最小的t
用海伦公式求出面积,再进行化简,是\(x^2-3y^2=1\)的形式,暴力求出前几组解,然后用佩尔方程的递推公式求即可

2019 Multi-University Training Contest 5 permutation 1

传送门
定义了一个不同排列,就是\(p_i - p_{i - 1}\),可以发现,\(n, 1, 2,...n - 1\)的不同排列是最小的
考虑到\(k\)是最大\(10000\),因为\(8!\)就大于\(10000\)了,那么如果说\(n>8\),就是直接对其后\(n-1\)个数字进行全排列k次即可,从\(n,1,2,3...n-1\)开始排列
但对于\(n<=8\),就不符合这个规律了,但可以直接预处理一下,排序得到解

posted @ 2020-08-23 21:12  Emcikem  阅读(184)  评论(0编辑  收藏  举报