P10136 [USACO24JAN] Cowlendar S 题解

原题

思考

第一个限制比较暴力,我们只考虑第二各

很显然,诺\(n\)只有\(3\).那么你\(L\)只受到第一个限制.

那么显然,当\(n>3\)时,由于取模的余数数量不能超过\(3\),所以必然有不少于两个同余.

一个常见的变换就是,\(a \equiv b \pmod p\) 等价于 \(a-b \equiv 0 \pmod p\)

我们可以枚举每两个数,然后我们计算两个数的差,对差进行分解因子.然后每个差检查一下是否为合法的\(L\)

检查的复杂度是\(O(n)\)的,枚举因子的复杂度是\(O(\sqrt n)\)的,枚举两个数的复杂度是\(O(n^2)\)的,总复杂度就是\(O(n^3 \sqrt n)\)

我们考虑优化.

显然瓶颈是\(O(n^2)\)的枚举.

我们考虑缩小枚举范围.

显然,前三个数里,有可能出现同余,也有可能不出现.

但是,前四个数里必然出现关于合法的\(L\)同余..

那么我们可以把枚举范围缩小到前\(4\)个两两枚举.

复杂度就变成了\(O(n\sqrt n)\)

难点分析

  • 首先我们这个题目要从同余来切入.然后暴力枚举

  • 其次,我们要注意到我们只需要枚举前\(4\)个就行

我这个题目没有想到的原因就是没有从暴力两两枚举来切入.

以后可以先暴力,后优化.

但是我觉得这个枚举前4个的性质是不好想的.可能可以使用逆向思维,观察合法的\(L\)在什么时候会出现,推出这个结论

posted @ 2026-08-18 10:38  txp2025  阅读(2)  评论(0)    收藏  举报