狀態壓縮二 (hiho 1048)

2021-06-26 06:24:40 字數 598 閱讀 9701

題意:給出乙個n*m的矩形格仔,用2*1的塊去填滿塊的方案數。

2<=n<=1000, 3<=m<=5

思路:由於m比較小,可以用位對其進行記錄,矩形內1*1的格仔的狀態有

橫著的開始,橫著的結尾,豎著的開始,豎著的結尾,所以用0,1,2,3

來分別進行表示,這樣用乙個2bit即可。

為了加速,先把不可能的一些狀態進行剔除,把中間的可能轉移狀態一次計算好,

在狀態轉移的時候直接拿來用就比較省時間。

#include#include#include#include#include#includeusing namespace std;

int dp[1111][1111];

int n,nstate,m,q;

int state[1111];

vectorv[1111];

const int m=1000000007;

int get(int x,int n)

bool isfrist(int x)

{ for (int i=0;i>n>>m;

nstate=1<<(m<<1);

q=0;

for (int i=0;i

hiho 1048 狀態壓縮2

題目大意 用1x2的單元拼接出 nxm的矩形,單元可以橫放或者縱放,n 1000,m 5.求不同的拼接方案總數。分析 實現 include include include using namespace std define bit i,j i 1 j 1 const int mod 1000000...

hiho 9 狀態壓縮二

歷經千辛萬苦,小hi和小ho終於到達了舉辦美食節的城市!雖然人山人海,但小hi和小ho仍然抑制不住興奮之情,他們放下行李便投入到了美食節的活動當中。美食節的各個攤位上各自有著非常多的有意思的小遊戲,其中乙個便是這樣子的 小hi和小ho領到了乙個大小為n m的長方形盤子,他們可以用這個盒子來裝一些大小...

每日一題之 hiho1048 狀壓dp

程式設計之美的課後題也有乙個和整個題目一樣的。p269 題目這個題目的題意很容易理解,在乙個n m的格仔裡,我們現在有兩種型別的磚塊,1 2和 2 1,問一共有多少種方案,可以將整個n m的空間都填滿。最簡單的例子就是下面的了 程式設計之美中題目 某年夏天,位於希格瑪大廈四層的微軟亞洲研究院對辦公樓...