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
資源約定:
峰值記憶體消耗 < 64m
cpu消耗 < 1000ms
請嚴格按要求輸出,不要畫蛇添足地列印類似:「請您輸入...」 的多餘內容。
所有**放在同乙個原始檔中,除錯通過後,拷貝提交該原始碼。
注意: main函式需要返回0
注意: 只使用ansi c/ansi c++ 標準,不要呼叫依賴於編譯環境或作業系統的特殊函式。
注意: 所有依賴的函式必須明確地在原始檔中 #include , 不能通過工程設定而省略常用標頭檔案。
提交時,注意選擇所期望的編譯器型別(千萬不要混淆c和cpp)。
思路:看了題很容易想到動態規劃,但是細思考來不是那麼容易,建議要手動畫畫示意圖,有助於思考!動態規劃的題解一般寫起來都是長篇大論,最近時間緊張就想偷個懶,所以我決定找個和我思路差不多的(傳送門)給大家參考一下hhhhh
**:
#include#include#include#include#include#include#include#include#include#include#includeusing namespace std;
#define mod 1000000007
int main()
,d[1010]= ,n;
scanf("%lld",&n);
d[1]=1;
for(int i=2; i<=n; i++)
d[i]=(d[i-1]*2)%mod;
a[1]=1;
a[2]=6;
for(int i=3; i<=n; i++)
a[i]=(d[i]+2*a[i-1]+4*a[i-2])%mod;
long long ans=0;
if(n==1)
else }
printf("%lld\n",ans);
return 0;
}
第四屆藍橋盃國賽C B組 空白格式化
本次大賽採用了全自動機器測評系統。如果你的答案與標準答案相差了乙個空格,很可能無法得分,所以要加倍謹慎!但也不必過於驚慌。因為在有些情況下,測評系統會把你的答案進行 空白格式化 其具體做法是 去掉所有首尾空白 中間的多個空白替換為乙個空格。所謂空白指的是 空格 製表符 回車符。以下 實現了這個功能。...
第四屆藍橋杯省賽C B組 字首判斷
如下的 判斷 needle start指向的串是否為haystack start指向的串的字首,如不是,則返回null。比如 abcd1234 就包含了 abc 為字首 char prefix char haystack start,char needle start if needle retur...
第四屆藍橋杯省賽C B組 翻硬幣
程式輸入 兩行等長的字串,分別表示初始狀態和要達到的目標狀態。每行的長度 1000 程式輸出 乙個整數,表示最小操作步數 例如 使用者輸入 o o 程式應該輸出 5再例如 使用者輸入 o o o o o o 程式應該輸出 1資源約定 峰值記憶體消耗 64m cpu消耗 1000ms 請嚴格按要求輸出...