狀壓dp 互不侵犯

這是一道典型的狀壓dp題。 我們可以將每一行棋子的狀態用二進制存儲。 dp[i][j][k]表示到第i行第j種狀態已有k個棋子。 那麼狀態轉移方程爲dp[i+1][p][k+num[p]]+=dp[i][j][k] (p指下一行的狀態)。 我們可以用位運算來判斷狀態是否合法,上下棋子是否攻擊到。 上代碼 #include<iostream> #include<cstdio> using names
相關文章
相關標籤/搜索