UESTC 885 方老師買錶 狀壓DP

2022-02-14 01:49:00 字數 1045 閱讀 8387

將方格的擺放分成兩種:

1.水平擺放:此時所佔的兩個格仔都記為1。

2.豎直擺放:此時底下那個格仔記為1,上面那個記為0。

這樣的話,每行都會有乙個狀態表示。

定義:dp[i][s]表示考慮已經填到第i行,這一行狀態為s的方法數

先預處理出所有滿足條件的第一行,然後從第二行開始轉移。

最後答案為dp[n][(1當n**:

#include #include 

#include

#include

#include

#define mod 1000000007

#define ll long long

using

namespace

std;

#define n 2100ll dp[

13][n];

intn,m;

int firstline(int

state)

else

return0;

}else

i++;

}return1;

}int can(int ka,int kb) //

ka:這一行,kb:上一行

else

//上一行為0,豎著放的

i++;

}else

//這一行i列為0,上一行i列必須填充

}return1;

}int

main()

memset(dp,

0,sizeof

(dp));

if(n

swap(n,m);

int max = (1

<1

;

for(sa=0;sa<=max;sa++)

for(i=1;i//

行遞增 }

}printf(

"%lld\n

",dp[n-1

][max]);

}return0;

}

view code

CDOJ 885 方老師買錶

方老師買錶 time limit 1000ms memory limit 65535kb 64bit io format lld llu submit status description 由於方老師出色的專題講座,他的名氣迅速擴散到全國各地,並通過各地的講座賺到了很多錢,鑑於現在盛行買錶,於是方老...

UESTC 方老師與素數

方老師最近很喜歡素數,他想玩乙個遊戲 現在有兩個 4 位的素數 n 和 m 你一次可以改變 n 的一位數字,並且改變過後的新數字必須也是個素數,並且也不能有前導 0 請問使 n 變為 m 最少需要多少步。例如n 1033 m 8179 那麼可行的變化是 1033 1733 3733 3739 377...

UESTC 1901 方方是個壞孩子

方方是個壞孩子 方方是乙個調皮的孩子,每天到處搞破壞把妹子,鄰居都討厭他。一天 方方不小心把鄰居 老姚神的魔法棒給摔成了n段,長度分別為a0,a 1,a n 1。方方雖然調皮,但還是不敢招惹可怕的 老姚神,修復魔棒是如此的艱難,只能請求另乙個鄰居 哈利波特大 用魔法把魔棒修復,但 哈利波特大 正在忙...