看不懂
261
319
465
367
492
251
276
394
503
360
245
388
513
273
447
302
518
379
508
369
550
499
Solutions
题号标 x
的需要 看证明 / 重新思考 / 写代码
Problem 110 Diophantine reciprocals II
在如下方程中,
,均为正整数(其中
)
不同的解的总数超过四百万种的最小值是多少?
Solution
此题有一个优美的结论:此方程组的解数为
proof
考虑
是整数,又由于
,得到
。那么令
,
就是
的一个约数,易得这是一个充要条件
令 ,注意到
,那么最优解一定有
,以此作为剪枝即可。
Problem 233x Lattice points on a circle
作过点
、
、
和
的圆,记圆周上坐标为整数的点的数目为
。
有些正整数
且
,这些正整数的和是多少?
Solution
考虑到 需要表示为两个数的平方和。这里有 费马平方和定理
一个奇质数能表示为两个数的平方和的充要条件是
根据经典恒等式 ,可以得到:这种质数的乘积也能表示为两个平方数的和。
分解 后讨论,最后转化为一个线性筛DP(考虑每个这种质数的指数)
Note 事实上,任意一个素数都能 唯一的 表示为两个数的平方和。这是因为 高斯整数环 是一个欧氏环,满足唯一分解性,具体参见高代书的内容
Problem 271 Modular Cubes, part 1
对于正整数
,存在整数
,满足
,且
。记所有这样的整数
的和为
。
求
。
Solution
注意到将模数分解后,每个质因子独立(这些质因子都很小),于是求出每一个质因子下的三次剩余,暴力 CRT 合并即可
Problem 272x Modular Cubes, part 2
对于正整数
,存在整数
,满足
,且
。记所有这样的整数
数目为
。
对于所有使得
的正整数
,求它们的和。
Solution
考虑三次剩余的性质,并注意到 (实际上一定是3的幂次)
三次剩余的性质:
Problem 292 Pythagorean Polygons
我们定义 毕达哥拉斯多边形 为满足下列性质的凸多边形:
- 有至少三个顶点,
- 不存在三个顶点共线,
- 每个顶点坐标均为整数,
- 每条边长度均为整数。
对于给定的整数
,记
为边长
的不同毕达哥拉斯多边形的数目。
只要不能将其中一个通过平移得到另一个,就被认为是不同的毕达哥拉斯多边形。求
。
Solution
显然可以得到一个DP做法,利用毕达哥拉斯三元组转移。
注意到条件 不存在三个顶点共线,于是考虑 本原 毕达哥拉斯三元组,所有三元组都可以由这个东西生成,于是用这个东西转移即可,由于斜率的单调性,可以前缀和优化一下
Problem 295 Lenticular holes
若两圆重叠而成的凸区域满足以下条件,我们称之为 透镜孔洞
- 两圆的中心都是格点。
- 两圆在两个格点处相交。
- 两圆重叠而成的凸区域内部不包含任何格点。
如果存在两个半径分别为
和
的圆能够生成透镜孔洞,我们就称有序正实数对
为透镜数对。
记
是所有满足
的 不同 透镜数对的数目。
求
。
Solution
通过 不等式 得到了长度的上界。考虑其中垂线,根据限制,是一段区间, 即可
Problem 341 The Mouse on the Moon
考虑一个
的网格,中心有一个半径为
的网格,要求选择一个多边形,与圆不相交(可以相切),并且顶点都在整点上,求包围面积与周长的最大比值。
Solution
分数规划好题!
二分答案,观察到一条边的贡献,可以由叉积减去答案乘长度得到,利用凸多边形的性质,按照 排序,DP 即可
Problem 362x Squarefree factors
我们记
是将
分解为一个或多个大于
的无平方因子因数乘积的方式数。
记
为
。求
。
Solution
首先线性筛出无平方因子数,考虑暴力DP, 考虑
中,用不超过
无平方因子数表出的个数。
然而这样暴力大概是 的。
注意到我们只需要考虑到根号级别的质数(因为大于根号的至多只有一个),其他的前缀和算一算,复杂度就是 的了
Problem 373 Circumscribed Circles
每个三角形都有一个经过三个顶点的外接圆。考虑所有外接圆半径也是整数的整数边长三角形。
取其中外接圆半径不超过
的三角形,记它们的外接圆半径之和为
。
求
。
Solution
通过××可以发现,一个结论:这种三角形的三边,一定是毕达哥拉斯三元组的直角边。
proof
考虑一个三角形
,他的圆心为
。考虑作过
的直径
,连
。
根据托勒密定理,有:
于是根号下的东西是完全平方数。
由于小于 的毕达哥拉斯三元组是
级别的,所以暴力生成三元组,枚举半径,
,求出
,即可。
Note 似乎存在规律:两个 ,如果它们的分解当中
素数的指数分布相同,它们的答案相同。(如何证明?)
Problem 416 A frog’s trip
在一列
个方块的最左边一个上有一只青蛙。青蛙通过连续不断的跳跃,先跳到最右边的方块,然后再跳回最左边的方块。它向右跳的时候每次可以跳一个、两个或三个方块,跳回来时也同理。它不能跳出这些方块。这样的往返它一共进行了
次。
记
为青蛙在旅途中至多有一个方块从未被跳到过的方式总数。
求
的最后
位数字。
Solution
把从右向左跳的青蛙反转方向,所有 只一起考虑,可以矩阵快速幂解决。
状态只需维护两个位置的青蛙数量,剩下一个可以直接得到。
Hardest
Problem 446 Retractions B*
对于任意整数
,函数族
按如下方式定义:
,其中
都是整数,且
。
我们称
为撤销函数,当
均有在模
意义下
。
记
是给定
下撤销函数的数目。记
,其中
。
求
Solution
首先可以证明一个结论:
proof
考虑
等价于
。
令
分别等于
,容易得到
并且
,显而易见,这是个充分必要条件。
令
,那么有
存在
种取值(
是
的倍数),并且
。
注意到
,根据扩欧,容易得到:当且仅当
时,存在解
,并且解唯一(同时存在
种解
)
于是有
回到原问题。一个重要的事实是 ,于是我们只需要考虑形如
数的答案。
还有一个亟待解决的问题是
与
之间的公因子。
显然当为偶数时,会存在公因子
,而没有公因子
。
又
,考虑
大于
的因子
,则必定有
。
因而
为偶数时,
为
,否则
为
。
接下来,我们考虑使用筛法来求出所有的 。在这里,推荐
ZhouYuChen
的高效筛法,复杂度可以做到 (由于去除的质因子非常大,所以实际非常不满)。
注意到 ,在模
意义下至多存在两个解
,逐个去筛
即可。但是,如何说明处理到第
个数时,剩下的
为质数?
proof
假设当前去筛的数为
,任取两个质因子
。
需要说明的是,
不存在平方因子。因为
,而显然
不被任何质数的平方整除。可以得到
于是有
注意到,此时必定有
,也即
假设
可以得到,根据
,那么有
。得到
,与上述式子矛盾!
于是就解决了整个问题。