https://codeforces.com/gym/101158
D题:双哈希:哈希函数一致,模数一个 1e9+7,一个998244353即可。
I题:作三角形或四边形,满足以下条件:
① 在 x = 0, x = 1e9, y = 0, y = 1e9 这四条直线上都存在着端点
② 端点都是整点
③ 面积不超过 25000
在分析的过程中,会遇到这样一个问题:求 (x, y),最小化 (|ax - by|)。
第一个问题,这个值是多少,这个值显然就是 ((a, b)),可以通过扩展欧几里得算法求得。
第二个问题,怎么求一组 ((x, y))。
(ax - by = d)
(ax - by = 1)
在辗转相除的过程中,假设 (ax' - by' = 1),已知 (bx - (a \% b) y' = 1),通过待定系数法可解得 (x' = -y, y' = 忘记了)。
第三个问题,当 ((a, b)) 很大时,计算过程可能会爆界,怎么办?由于通解是 (x = x_0 + bt, y = y_0 + at),我们通过对 (x') 取模限定 (1 le x_0 < b),然后再计算 (y') 即可,此时也显然能推出 (0 le y' < a)。
显然,第三个问题当中,我们得到一个更优的技巧,能很轻松地限定 (x) 在 ([1, b]),(y) 在 ([0, a - 1]) 内。
K题,不好现场推,模板里记个结论:
[s(X) = left{~ max_{y in Y_{Alice}} s(y) ~ | ~ min_{y in Y_{Bob}} s(y)
ight}
]
(s(X) > 0):Alice必胜;(s(X) = 0):公平;(s(X) < 0):Bob必胜。
(s(X + Y) = s(X) + s(Y))
Surreal Number的计算方法:...
对于取石子问题,自底向上,先取连续1,再取1/2,再取1/4,...