这道题目为什么考场上没想出来。。。就是不太相信自己吧,而且有个技巧不太清楚。。哎
很明显的一点是各个种族是分开的,所以我们每个种族单独考虑就好了
假设对于一个种族,我们已经固定了分的组数为\(k\)了,那么肯定是“平均”分到每个组是最好的(这点没办法证明,但是我考场上就是想得这一点啊,要学会相信自己,比较显然吧),按照官方题解的说法,就是
然后就是计算贡献这一点,本来我是想用容斥原理的,但是需要循环,看看官方题解的计算就非常简便,我们要学会
但是如果\(k>c\)了怎么办?此时,之后的任何一个组数都当前种族的分法都是固定的(让每个人的组别不同),所以贡献也是一样的,此时就要记住官方题解所使用的技巧了,我们用一个数组\(add[i]\)记录下来,最后求出\(add\)数组的前缀和就好了