解析
先安利一波洛谷上我介绍如何用暴力日过去的博客
现在开始务正业
考虑把dp记录状态的一维s去掉
这样单次转移复杂度变成n3n^3n3
但是这样显然会算多啊!
因为一个编号可能会用很多次
考虑容斥
设ansians_iansi表示至少浪费了i个编号的答案
那么我们的答案显然就是
ans0−ans1+ans2...ans_0-ans_1+ans_2...ans0−ans1+ans2...
就是一个经典的利用容斥至少转恰好的方法
至于ans的计算,可以暴力枚举二进制的集合s,每次进行一次n3n^3n3转移的计算
时间复杂度O(n3∗2n)O(n^3*2^n)O(n3∗2n)
暴力都日过去了就不贴代码了