题解 P3694 【邦邦的大合唱站队/签到题】
kkksc03
2017-04-16 03:17:04
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表示到此已经排到的长度。