看不懂
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
假设当前去筛的数为 ,任取两个质因子 。
需要说明的是, 不存在平方因子。因为 ,而显然 不被任何质数的平方整除。可以得到
于是有
注意到,此时必定有 ,也即
假设
可以得到 ,根据 ,那么有 。得到 ,与上述式子矛盾!
于是就解决了整个问题。
网友评论