[luogu]P3694 邦邦的大合唱站队

70分做法:枚举每个学校顺序,暴力。

100分:状压dp。从队列头到尾DP,

状态:f[i]表示i状态下最小的出列(不一致)的个数。

比如f[1101]表示从头到位为1/3/4乐队的偶像的最小出列个数。
f [ i ] = m i n ( f [ i x o r 2 j ] + n u m [ j ] − ( s u m [ l e n g t h ] [ j ] − s u m [ l e n g t h − n u m [ j ] ] [ j ] ) ) ; f[i]=min(f[i xor 2 ^j ]+num[j]−(sum[length][j]−sum[length−num[j]][j])); f[i]=min(f[ixor2j]+num[j](sum[length][j]sum[lengthnum[j]][j]));

j表示团队编号,sum表示某种团队的前缀和,length表示到此已经排到的长度。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值