SGU223 狀態壓縮

2022-05-31 18:09:10 字數 907 閱讀 6350

下午花了兩個小時把yali中學 陳丹琦的《基於連通性狀態壓縮的動態規劃問題》啃完,,,

插頭dp還真是個麻煩的東西。。。

相較sgu223算乙個水題了,

給定n*n的棋盤,擺放m個不相互攻擊的棋子,棋子攻擊範圍為相鄰8個位置。求方案數。

dp[i][j][k],第i行,狀態為j,放了k個棋子的方案數,dp[i][j][k] = sum(dp[i-1][jj][k - cnt(j)])

詳見**:

#include#include

#include

#define ll long long

#define n 11

intn;

intm;

ll dp[

11][1024][111

];int cnt[1024

];int get_cnt(int

x)

return

res;

}bool check(int

x)bool calc(int x,int

y)int

main()

}dp[

0][0][0] = 1

;

for (int i=1; i<=n; i++)

for (int j=0; j<=(1

<1; j++)

if (cnt[j]>=0

) }}

}ll ans = 0

;

for (int j=0;j<=(1

<1;j++)

if (cnt[j]>=0

) printf(

"%i64d\n

",ans);

return0;

}

sgu223

SGU 223 國王 狀壓DP

在 n n n n 的棋盤上放 k k k 個國王,國王可攻擊相鄰的 8 8 8 個格仔,求使它們無法互相攻擊的方案總數。n n 狀壓dp是一種比較暴力的dp。n n 首先dp i j k 表示前i行放置k個國王,且當前行狀態是j的方案數。n n 轉移方程 dp i j k dp i 1 m k s...

SGU 131 狀態壓縮dp

include include include include include include include include include include include include includeusing namespace std ifdef win32 define i64 int6...

力扣 223 場 周賽總結 並查集 狀態壓縮

1722.執行交換操作後的最小漢明距離 相似題目 1202.交換字串中的元素 1723.完成所有工作的最短時間 首先兩題剛拿到的時候思路都是正確的 3 的尋找連通區域和遍歷 和 4 的二分答案範圍來求解,總體難度感覺不高,但是還是沒有做出來。對於 3 對於並查集中的劃分連通區域不熟悉 利用map來處...