欢迎光临散文网 会员登陆 & 注册

P3694 邦邦的大合唱站队 题解

2023-03-27 21:06 作者:fdsji  | 我要投稿

这道题中,我们并不关心出列的是谁,而是出列的人数。

由于偶像数量很多,乐队的数量则很少,考虑状压 dp。

可以发现不管怎么排,怎么出列,最后的总人数是一直不变的,同时,每个乐队的总人数也是不变的(很显然的重要性质)。

假设状态 f 表示当前已经站好的乐队的编号集合,设总人数为 l_f,若他们从第一个位置开始站起,则他们所占用的位置一定是 %5B1%2C%20l_f%5D

我们不妨考虑站在最后一个位置的乐队,设其人数为 num_i,同样地,可以确定其所在区间一定是 %5Bl_f%20-num_i%2B1%2C%20l_f%5D。那么原本就在这个区间里的偶像就可以不用出列了,其他人全部出列即可。

最后我们定义 s_%7Bi%2C%20j%7D 为初始状态下前 i 个位置中是 j 号乐队的人的个数,此信息和上述的 num_i%2C%20l_f 一样,都可以初始化后得到。

我们令 F(f) 为状态 f 时的最小出列人数,显然的,对于 %5Cforall%20j%20%5Cin%20f 有:

F(f)%3Dmin(F(f%5Coplus(1%3C%3Cj))%20%2B%20num_j%20-%20s_%7Br%2C%20j%7D%20%2B%20s_%7Bl%2C%20j%7D)

其中 %5Coplus%20 表示异或。

Code:

心情日记:

悲惨,数学又不及格……我的数学到底什么时候才会好一点啊……

好像和喜欢的女生待在一起啊,可惜她是年级第一啊,我怎么配得上她呢?对吧……

P3694 邦邦的大合唱站队 题解的评论 (共 条)

分享到微博请遵守国家法律