2019.11.1

「长夜将至,我从今开始守望,至死方休。我将不娶妻、不封地、不生子。我将不戴宝冠,不争荣宠。我将尽忠职守,生死於斯。我是黑暗中的利剑,长城上的守卫。我是抵御寒冷的烈焰,破晓时分的光线,唤醒眠者的号角,守护王国的坚盾。我将生命与荣耀献给守夜人,今夜如此,夜夜皆然。」

http://noi.ac/contest/13/problem/40

题解

这题挺难的嗯。。。

想到了个$O(n\sum k)$的做法。

首先考虑到一个性质:如果我们想让一个数出现两次,只需要两个集合就可以了,更多的集合只会使答案更劣。

我们预处理每个集合不同数字个数$c_i$

枚举每个集合的每个元素$k_i$,设为集合$S$ ,然后枚举剩下$n-1$个集合中有$k_i$的$c$的最小值,对$|S|$个这样的答案取最大值,然后和最终答案变量取最小。