狀態壓縮dp(鋪瓷磚問題)

2021-08-15 20:38:37 字數 880 閱讀 8934

今天蒜頭君裝修新家,給家裡買了一種 1 \times 21×

2的長方形(如圖1)新瓷磚。蒜頭君是個懂得審美的人,畢竟人生除了金錢,還有詩和遠方。

這個時候蒜頭君就在想,這種長方形的瓷磚鋪到乙個 10 \times 1010

×10 的地面上有多少種方案?(如圖2:是 4 \times 44×

4 地面的一種方案)

圖1:

圖2:

#include #include #include #define ll long long  

using namespace std;

const int maxn=13;

int w,h,tan;

ll dp[13][2100];//1<<11

int path[14000][2];//11*(1<<11)

void dfs(int l,int now,int pre)

dfs(l+2,(now<<2)|3,(pre<<2)|3);

dfs(l+1,(now<<1)|1,pre<<1);

dfs(l+1,now<<1,(pre<<1)|1);

} int main()

{ while(~scanf("%d%d",&h,&w))

{ if(!h&&!w)break;

if(h狀態壓縮問題:

傳送門:  狀態壓縮詳解

poj

狀態壓縮dp入門 鋪磚問題

mondriaan s dream hardwood floor 第一道題目是只有一種磚,2x1可以橫著鋪,可以豎著鋪,問有多少種鋪法第二道是有兩種磚,一種是2x1的,一種是2x2的去掉乙個1x1的角也是問有多少中鋪法首先第一道我們用0 1來表示不鋪和鋪兩種狀態每一行用01字串表示狀態然後再轉化為乙...

鋪瓷磚 狀壓dp經典問題

給出 n m的矩形方塊,可以往上面鋪1 2的磚塊,問鋪滿這個方塊的方案有多少種。磚塊可以豎鋪和橫鋪,豎鋪的話會影響到下一行,橫鋪的話不會影響到下一行,這裡我們令1 表示該方塊不會影響下一行,0 表示該方塊會影響下一行。條件一 考慮 i.j 這一格,如果 i 1,j 上是0,那說明 i 1,j 是豎鋪...

鋪瓷磚 狀壓dp

最近學了狀壓dp,把之前未解決的題目捋一捋。這是之前的一道題 今天蒜頭君裝修新家,給家裡買了一種 1 2或2 1 的長方形 如圖1 新瓷磚。蒜頭君是個懂得審美的人,畢竟人生除了金錢,還有詩和遠方。這個時候蒜頭君就在想,這種長方形的瓷磚鋪到乙個 10 10 10 times 10 10 10 的地面上...