某岛

… : "…アッカリ~ン . .. . " .. .
September 7, 2013

SRM 508

250. DivideAndShift

Brief description:

。。求满足以下递归关系的某函数的值。。
f(n, 0) = 1
f(n, m) = f(n, m%n)
f(n, m) = min(f(n, m-1), f(n, m+1), f(n/d, m%(n/d))

Analysis:

。。显然放缩总是安排在滚动的前面比较科学。。。于是枚举约数就行了。。放缩次数等于素因子个数。。

500. YetAnotherORProblem

Brief description:

。给定一个长度为 n 的数组 a[]。。求有多少满足条件的数组 b[]。。使得。。b[i] <= a[i]。。。且 b 的和等于位或。。

Analysis:

。。和等于位或。。显然就是每个位上至多有一个一。。于是显然和某题一样。。可以从高位到低位 DP。。。
dp[k][s]: 表示当前第 k 位。。s 表示当前已经不受限制的集合。。。枚举 0 和 恰好有一个 1 这两种决策。记忆化搜索即可。。。

1000. BarbarianInvasion2

Brief description:

。。一个 n 个点的凸包内部分布着 m 个点。。。要求将凸包的轮廓分割成等长的 m 段测度。。(。注意每段不要求在边界上连续分布。。)。。。将这些测度和内部的点做匹配。。。最小化最远的测度到点的距离。。。(m = 5)

Analysis:

。。首先二分答案。。

。。显然对凸包上的每一条边。。我们需要做线段和圆求交。。然后扫描线。。搞出每个小段可以从属的圆的集合。。。
。。之后要判断合法。。实际上就得到了一个完备匹配的问题。。。似乎可以跑网络流。。但是困难之处在于。。此题中的容量不是整数。。。。
。。注意到。m 非常小。。而且我们只要判断完备匹配的存在性。。所以可以暴力使用 Hall’s marriage theorem。。。

External link:

https://apps.topcoder.com/wiki/display/tc/SRM+508
https://gist.github.com/lychees/6475006
www.cnblogs.com/zbwmqlw/archive/2011/06/03/2070534.html