题解 CF2165B Marble Council
题解 CF2165B Marble Council
其他题
题意
给定一个可重集
数据范围:多测,
做法
考虑对每个数拆贡献。然后当你试图考虑贡献怎么算的的时候你会发现:其实这个数只要出现在最终的集合中至少
所以现在只有在最终所得集合中不出现的数需要算算。
然后我们发现一个数字如果出现那每个该数字可以为每个不出现的数值(多个数值显然可以都是众数)提供一个位置。(这边区分一下,相等的多个数算一个数值多个数字,要不然不好表述)
这个条件转化一下,就是出现的数字总个数不小于数字个数最多的数值的数字个数就行。乍一看有点离谱,但其实你分最大的选不选讨论一下就会发现很合理。
然后直接暴力 dp:设
启示:做不出来的时候看看条件能不能转化,尤其是本题根据七字真言已经确定了是 DP 然后你还设不出状态。类似的教训:
- 山大校赛 2024 决赛 I
- NOIP 2021 C