麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 學院 > 開發設計 > 正文

格子刷油漆

2019-11-10 19:35:49
字體:
來源:轉載
供稿:網友

標題:格子刷油漆

X國的一段古城墻的頂端可以看成 2*N個格子組成的矩形(如圖1所示),現需要把這些格子刷上保護漆。

你可以從任意一個格子刷起,刷完一格,可以移動到和它相鄰的格子(對角相鄰也算數),但不能移動到較遠的格子(因為油漆未干不能踩!) 比如:a d b c e f 就是合格的刷漆順序。 c e f d a b 是另一種合適的方案。 當已知 N 時,求總的方案數。當N較大時,結果會迅速增大,請把結果對 1000000007 (十億零七) 取模。 輸入數據為一個正整數(不大于1000) 輸出數據為一個正整數。 例如: 用戶輸入:

2 程序應該輸出:

24 再例如: 用戶輸入:

3 程序應該輸出:

96 再例如: 用戶輸入:

22 程序應該輸出:

359635897

#include <stdio.h> long long a[1001],b[1001],sum;//int 會超,所以long long #define NUM 1000000007 int main() { int i,n; scanf("%d",&n); //dp //總體分為 1:從邊緣的出發 2:從中間出發 //1. //a[i]數組表示從最邊緣的四個格子中某個出發,遍歷完長度為i,個數為2i個格子的所有種類數; //b[i]數組表示從除了最邊緣的四個格子外的某個中間的格子出發,遍歷完一邊回到所對的格子; //第一種情況一直向右走,假設從a點出發,每一列隨機只走一格,也就是每向右只走一步,就是數組b[i]的存儲 //第二種情況就是先走a所對的格子,然后再走下一列,當前就有兩種情況,以此類推2 * a[i - 1] /*第三種考慮會往回走的情況,從第一列到第三列,會經過第二列,比如N = 3的情況, 要走到第三列,只有abcd ,abdc, adbc, acbd 四種情況。*/ //綜上:a[i] = (2 * a[i-1] + b[i] + 4 * a[i-2]) b[1] = 1; for (i = 2; i <= n; i++) b[i] = (b[i-1] * 2 % NUM); a[1] = 1; a[2] = 6; for (i = 3; i <= n; i++) a[i] = (2 * a[i-1] + b[i] + 4 * a[i-2]) % NUM; sum = 4 * a[n]; //四個角,所以*4 //2.下面再 加上從中間出發的種數 /* 從第i列開始,則前面有i-1列,后面有n-i列 總的走法是:先遍歷左邊后右邊 + 先遍歷右邊后左邊 == 2*(2*b[i - 1]*2*a[n - i]) + 2*(2*b[n - i]*2*a[i - 1]); */ for (i = 2; i < n; i++) sum += ((8*b[n-i]*a[i-1]%NUM)%NUM + (8*a[n-i]*b[i-1])%NUM) % NUM; if(n == 1)
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 国产噜噜噜 | 一级看片免费视频 | 老女人碰碰在线碰碰视频 | 国产一区二区高清在线 | 精品一区二区三区在线观看视频 | 国产精品久久久久一区二区 | 成人午夜毛片 | 国产精品呻吟 | 精品国产91久久久久久 | 国产在线一区二区三区 | 免费毛片在线视频 | 久久精品一区二区三区不卡牛牛 | 欧美三级欧美成人高清www | 91网站链接 | 欧美区在线 | 最新中文字幕日本 | 国产精品一区二区x88av | 男人的天堂毛片 | 国产亚洲精品久久午夜玫瑰园 | 欧美成年性h版影视中文字幕 | 4p一女两男做爰在线观看 | 久久最新免费视频 | 国产精品成人av片免费看最爱 | 久久里面有精品 | 国产亚洲精品综合一区91555 | 精品国产91久久久久久久妲己 | 欧美成人一区免费视频 | 欧美一级黄色片免费观看 | 国产精品久久久久久久久久久久午夜 | 久久密 | 欧日韩在线视频 | 色蜜桃av | 亚洲亚色 | 特级黄毛片 | 免费看真人a一级毛片 | 国产精品久久av | 国产午夜精品一区二区三区免费 | 成人情欲视频在线看免费 | 激情久久一区二区 | 欧美日韩高清一区 | 日韩中文字幕一区二区三区 |