Gravatar
yrtiop
积分:2101
提交:309 / 808

Pro3249  Rotate Columns

发现最难受的是每行必须选最大值,不好统一刻画。

但是我们可以直接转化这个问题:泛化为从每行选一个数,求最大可能值。不难发现这样答案不会变化。

于是可以状压 dp,$f(i,S)$ 表示处理完前 $i$ 列,目前 $S$ 中为 $1$ 的行已经选上数的最大可能值。

转移直接枚举循环位移,然后枚举子集转移即可。$\mathcal O(Tmn3^n)$。

再做一些最优性的分析,加以预处理,可以做到 $\mathcal O(T(m\log m + n^32^n + n3^n))$。


2024-05-24 16:45:08    
我有话要说
暂无人分享评论!