题意:bzoj1231
分析:
给定一段序列,让你随便排序,问有多少种排序使得相邻元素之差大于 m m m。
显然是个状压 d p dp dp,状态转移方程:
d p [ i ∣ ( 1 < < k ) ] [ k ] + = d p [ i ] [ j ] dp[i|(1<<k)][k]+=dp[i][j] dp[i∣(1<<k)][k]+=dp[i][j], 其中 k ∉ i , j ∈ i , a b s ( a [ k ] − a [ j ] ) > m k\notin i,j\in i,abs(a[k]-a[j])>m k∈/

博客详细解析了bzoj1231题目,指出问题可以通过状压动态规划来解决。分析中提到,目标是计算序列排序后相邻元素差值大于m的所有情况。状态转移方程为dp[i∣(1<<k)][k]+=dp[i][j],其中i和j表示集合,k表示满足差值条件的元素。初始状态为dp[1<<i][i]=1,表示集合中只有一个元素时满足条件。

652

被折叠的 条评论
为什么被折叠?



