并查集

先放原题:

将正整数1,2,3,,301, 2, 3, \dots, 30划分为kk组,使得每组内任意两数之和不等于任何完全平方数。求kk的最小值。(《培优新方法》八年级数学 §23 第3题)

嗯,对手搓暴力枚举来说数据确实大了点。抱着“反正也不可能求出正解”的心态,我尝试遍历了这些数,在第ii遍历时,将符合要求的数依次加入第ii组。具体来讲,如果数gg和第ii组里的任何数之和都不是完全平方数,则将gg加入该组并在随后的遍历中忽略。最终一共遍历了33遍才将所有数分完,所以我大剌剌填了33上去。往后一翻——答案就是33

然后某人发表暴论:“这有点像一道编程题。我在一本讲程序设计的书上看到过。”我同意。于是就有了这篇帖。

(更多…)

More
  • 2021年9月11日