傳送門
小 d 特別喜歡玩遊戲。這一天,他在玩一款填數遊戲。
這個填數遊戲的棋盤是乙個 n×m
n \times m
n×m 的矩形**。玩家需要在**的每個格仔中填入乙個數字(數字 0
00 或者數字 1
11),填數時需要滿足一些限制。
下面我們來具體描述這些限制。
為了方便描述,我們先給出一些定義:
我們用每個格仔的行列座標來表示乙個格仔,即(行座標,列座標)。(注意: 行列座標均從 0
00 開始編號)
合法路徑 p
pp:一條路徑是合法的當且僅當:
這條路徑從矩形**的左上角的格仔 (0,
0)(0,0)
(0,0
) 出發,到矩形的右下角格仔 (n−
1,m−
1)(n - 1,m - 1)
(n−1,m
−1) 結束;
在這條路徑中,每次只能從當前的格仔移動到右邊與它相鄰的格仔,或者從當前格仔移動到下面與它相鄰的格仔。
例如:在下面這個矩形中,只有兩條路徑是合法的,它們分別是 p
1p_1
p1:(0,
0)(0,0)
(0,0)→→→(
0,1)
(0,1)
(0,1)→→→(
1,1)
(1,1)
(1,1
) 和 p
對於一條合法的路徑 p
pp,我們可以用乙個字串 w(p
)w(p)
w(p)
來表示,該字串的長度為 n+m
−2n + m - 2
n+m−
2,其中只包含字元 「r」 或者字元 「d」, 第 i
ii 個字元記錄了路徑 p
pp 中第 i
ii 步的移動方法,「r」 表示移動到當前格仔右邊與它相鄰的格仔,「d」 表示移動到當前格仔下面與它相鄰的格仔。例如,上圖中對於路徑 p
1p_1
p1,有 w(p
1)w(p_1)
w(p1)
=
== 「rd」;而對於另一條路徑 p
2p_2
p2, 有 w(p
2)=w(p_2) =
w(p2)
= 「dr」。
同時,將每條合法路徑 p
pp 經過的每個格仔上填入的數字依次連線後,會得到乙個長度為 n+m
−1n + m - 1
n+m−
1 的 01
0101
字串,記為 s(p
)s(p)
s(p)
。例如,如果我們在格仔 (0,
0)(0,0)
(0,0
) 和 (1,
0)(1,0)
(1,0
) 上填入數字 0
00,在格仔 (0,
1)(0,1)
(0,1
) 和 (1,
1)(1,1)
(1,1
) 上填入數字 1
11(見上圖紅色數字)。那麼對於路徑 p
1p_1
p1,我們可以得到 s(p
1)=s(p_1) =
s(p1)
= 「011
01101
1」,對於路徑 p
2p_2
p2,有 s(p
2)=s(p_2) =
s(p2)
= 「001
00100
1」。遊戲要求小 d 找到一種填數字 0
00、1
11 的方法,使得對於兩條路徑 p
1p_1
p1,p
2p_2
p2,如果 w(p
1)>w(
p2)w(p_1) > w(p_2)
w(p1)
>w(
p2)
,那麼必須 s(p
1)≤s
(p2)
s(p_1) ≤ s(p_2)
s(p1)
≤s(p
2)。我們說字串 a
aa 比字串 b
bb 小,當且僅當字串 a
aa 的字典序小於字串 b
bb 的字典序。但是僅僅是找一種方法無法滿足小 d 的好奇心,小 d 更想知道這個遊戲有多少種玩法,也就是說,有多少種填數字的方法滿足遊戲的要求?
小 d 能力有限,希望你幫助他解決這個問題,即有多少種填 0
00、1
11 的方法能滿足題目要求。由於答案可能很大,你需要輸出答案對 109
+710^9 + 7
109+
7 取模的結果。
資料範圍:n≤8
n\le 8
n≤8,m≤1
06m\le 10^6
m≤106。
這算是一道打表找規律的題,考場上寫了個 dfs
dfsdf
s 套 dfs
dfsdf
s 找了 n≤3
n\le 3
n≤3 的規律。
具體的推導過程我就不寫了,可以看看這裡。
#include
#include
#include
#define p 1000000007
using
namespace std;
int n,m,inv128=
570312504
,inv384=
190104168
;int
add(
int x,
int y)
intdec
(int x,
int y)
intmul
(int x,
int y)
intpower
(int a,
int b)
intmain()
return0;
}
Noip2018 填數遊戲
耳熟能詳,就不多說了 對於乙個不會推式子的蒟蒻,如何在考場優雅地通過此題 手玩樣例,發現對於 n 1 ans 2 m 對於 n 2 ans 4 times 3 或者乾脆打出 n,m le 3 的表 肉眼觀察法,發現似乎有 f n,m 1 3f n,m 但這並不是正確的,但如果你僅僅是這麼認為了,你仍...
NOIP2018提高組初賽
在一條長度為 1 的線段上隨機取兩個點,則以這兩個點為端點的線段的期望長度是 1 3 frac13 31 解析 使用排除法解決問題,當左邊的點在左邊端點是,期望長度為1 2 frac12 21 所以答案一定小於1 2 frac12 21 為了統計乙個非負整數的二進位制形式中 1 的個數,如下 int...
NOIp2018 提高組遊記
上午請假,沒去學校,在家裡刷了十多道題,中午12點出發去杭州 16點到達賓館,和hsy,oyyj嘮了會兒嗑,開始刷模板 晚飯炸雞真香,和xjd學長聊了一會兒,又和鄒sir聊了一會兒,回顧了自己的部落格,22點準時睡覺 失眠了,22 00 02 00,我不知道我是怎麼度過的,作為提高萌新,真的有點緊張...