sgu262:Symbol Recognition(狀壓DP)
題目大意:
給出k個n?m的01矩陣Si,求出一個1盡量少的n?m的01矩陣P,滿足k個矩陣與該矩陣的交互不相同,也就是說通過該矩陣能表示出給出的k個矩陣。
分析:
這題有幾個狀壓DP的思路,這裡講一個吧。
假設我們將Si與P的交定義為Qi,其編號為Ti,那麼初始的時候交都為空,即T1=T2=...=Tk=0,Q1=Q2=...=Qk=?。
枚舉P當前的格子(x,y),假設有Si,x,y=Sj,x,y=1,且Qi=Qj,那麼當前格子放1的話,新的Qi依舊等於Qj,反之不等於。所以可以用最小表示搞出該格子放1後的T。然而T就是整個狀壓DP的狀態。當max{Ti}=k?1的時候,證明所有的Ti均不相同,也就是所有的Qi均不相同,此時的P即為所求。
AC code:
#include
#include
#include