POJ 3254 Corn Fields 狀態壓縮

2021-06-23 04:45:05 字數 675 閱讀 1476

具體見注釋

#include #include #include #include #include #include #include #include #include #include #include #include using namespace std;

#define mod 100000000

int n,m,map[15];//map陣列用來存圖

int cnt[10000],dp[15][10000];//cnt存當一層每處都可以放置東西時,所有滿足題意的情況

int k;

bool ok(int x)//判斷某種方法是否滿足題意

void find()

return true;

}int dfs(int cur,int state)

{ if(cur==n) return dp[cur][state]=1;

if(dp[cur][state]!=-1) return dp[cur][state];//記憶化搜尋

int ret=0;

for(int i=0;i<(1<>n>>m;

memset(map,0,sizeof(map));

memset(dp,-1,sizeof(dp));

for(int i=0;i>t;

if(!t) map[i]|=1<

poj解題報告 3254

狀態壓縮dp。題意 給出乙個n行m列的草地,1表示肥沃,0表示貧瘠,現在要把一些牛放在肥沃的草地上,但是要求所有牛不能相鄰,問有多少種放法。分析 假如知道第 i 1 行的所有的可以放的情況,那麼對於第 i 行的可以放的一種情況,只要判斷它和 i 1 行的所有情況的能不能滿足題目的所有牛不相鄰,如果有...

POJ 3254,POJ 1185(狀態壓縮DP)

poj 3254 corn fields 我們可以用二進位制列舉第一行狀態,用1代表在這種植,0代表不種植,第一行確定了,第二行就可以根據第一行不斷累加。dp row state 代表第row行用state狀態時的方法數。如果這個state合法,則dp row state dp row 1 stat...

POJ 3254 (狀態壓縮DP)

思路 狀態壓縮dp,用二進位制位的1表示放了,0表示沒有放。設dp i j 表示第i行狀態為j時,前i行的方案數,狀態轉移方程就是 dp i j dp i 1 k j與k這兩個狀態不衝突。最後答案就是dp n 1.top 之和。include include include include incl...