题解 P3694 【邦邦的大合唱站队/签到题】

kkksc03

2017-04-16 03:17:04

Solution

70分做法:枚举每个学校顺序,暴力。 100分:状压dp。从队列头到尾DP, 状态:f[i]表示i状态下最小的出列(不一致)的个数。 比如f[1101]表示从头到位为1/3/4乐队的偶像的最小出列个数。 $ f[i]=min(f[i\ xor\ 2^j]+num[j]-(sum[length][j]-sum[length-num[j]][j]));$ j表示团队编号,sum表示某种团队的前缀和,length表示到此已经排到的长度。