NOIP2012模擬10 6 填充棋盤

2021-09-03 00:00:52 字數 1144 閱讀 4607

description

橫一劃豎一劃,橫一劃豎一劃…………小r畫出了乙個n*m的棋盤。

由於noip快要到了,小r有了乙個奇妙的想法。

在棋盤的每乙個小方格中填入n,o,i,p這4個字母中的乙個,若棋盤中每乙個2*2的小棋盤中都有n,o,i,p這4個字母,小r就認為這個棋盤是幸運棋盤。小r想知道一共有多少種不同的幸運棋盤。由於這個結果可能會很大,你只需輸出對1,000,000,007取模後的值。

input

兩個整數n,m表示棋盤的大小。
output

乙個整數表示幸運棋盤的個數對1,000,000,007取模後的值。
題解

1 2 5

3 4 6

7 89

首先在左上角確定1、2、3、4,向5、6方向擴充套件方案總數乘2,向7、8方向擴充套件總數也乘2,這十分顯然。再看4、6、8、9,而4、6、8在之前已今被確定了,9自然被確定了,為了符合題意,4、6、8、9只有十二種合法方案。

即總方案數為 (2^(n-1)+2^(m-1)-2)*12 。

**

const

mo=1000000007;

var n,m:int64;

function

mi(x:int64):int64;

begin

if x=0

then

exit(1) else

begin

mi:=sqr(mi(x div

2)) mod mo;

if odd(x) then

mi:=(mi*2) mod mo;

exit(mi);

end;

end;

procedure

main;

var ans:int64;

begin

ans:=(mi(n-1)+mi(m-1)-2) mod mo;

ans:=(ans*12) mod mo;

write(ans);

end;

begin

readln(n,m);

main;

end.

NOIP2012模擬10 6 購買

description 小n 最近迷上了購物每天都讓小a 和小t 陪她逛街拿東西。最近商店出了這樣的乙個 活動 買東西送積分,就是買一件物品,送當前物品的積分ci 當前的倍率,初始倍率是1 input 第一行有乙個整數n表示要買的種類。接下來n行每行2個整數ki,ci表示數量和積分 接下來一行有乙個...

NOIP2012模擬10 6 購買

description 小n 最近迷上了購物每天都讓小a 和小t 陪她逛街拿東西。最近商店出了這樣的乙個 活動 買東西送積分,就是買一件物品,送當前物品的積分ci 當前的倍率,初始倍率是1 當倍率是i 的時候,如果你買的物品等於ti 個,那麼倍率將加1.最多積分的人可以得到超限 量版的圓神手辦。小n...

NOIP2012模擬10 25 旅行

給定乙個n行m列的字元矩陣,代表空地,x 代表障礙。移動的規則是 每秒鐘以上下左右四個方向之一移動一格,不能進入障礙。計算 在空地中隨機選擇起點和終點 可以重合,此時最短耗時為0 從起點移動到終點最短耗時的平均值。每一行每一列至多有1個障礙,並且障礙不在對角線方向相鄰。以下矩陣是不合法的 x x.第...