ABC447G Solution(随机化算法)
abc447g
F1
来自英文的用户题解(台湾老哥)
考虑随机染色。我们将原来的每一种颜色随机均匀映射成为新的 \(4\) 种新颜色。现在判定策略转换,我们认为新颜色不同则说明原颜色不同。这个是充分不必要的。对于一种正解,染色后成功概率为 \(1\times \frac{3}{4}\times \frac{2}{4}\times \frac{1}{4}\times \frac{2}{4}\times \frac{1}{4}=\frac{3}{256}\),换句话来说,随机染色后得到的最优解有 \(\frac{3}{256}\) 的概率是真正最优的。我们可以通过在时间限制内重复随机化,以得到正确解。随机化一次是 \(O(n)\),的但是常数巨大。常数大小与正确率有关。
人类做法 \(4\text{s}\) 内可以跑 \(400\sim 700\) 次,但是AI卡常可以跑 \(3500\) 次。根据条件概率公式,重复 \(k\) 次后错误概率为:
这个东西在 \(k=400\) 时只有 \(0.8\%\),可以通过。
F2
来自日文的用户题解(maspy)
其实还有更优秀的染色方式。我们映射均匀成为 \(2\) 种颜色。可以强制 \(A,B,E,F\) 选 \(0\) 且 \((A,B),(E,F)\) 原来颜色不同,强制 \(C,D\) 选 \(1\) 且 \((C,D)\) 原来颜色不同。则成功概率为 \((\frac{1}{2})^6=\frac{1}{64}>\frac{3}{256}\)。其实还可以更优,设 \(0\) 的概率为 \(p\),\(1\) 的概率为 \(1-p\),则成功概率为 \(p^4(1-p)^2\),直观感觉这个当 \(p\) 比 \(\frac{1}{2}\) 稍大时会更优。经过求导,在 \(p=\frac{2}{3}\) 时,取最大值 \(\frac{16}{729}\)。这样随机化次数可以减少以保证相同的正确概率。
浙公网安备 33010602011771号