c 計蒜客 動態規劃 Pell 數列

2021-10-25 06:09:41 字數 609 閱讀 3878

pell 數列 a_1, a_2, a_3, …a 1 ,a 2 ,a 3,… 的定義是這樣的,a_1 = 1, a_2 = 2, … , a_n = 2 \times a_ + a_ (n > 2)a 1 =1,a 2 =2,…,a n =2×an−1 +an−2(n>2)。

小蒜給出乙個正整數 kk,要求 \textpell 數列的第 kk 項模上 3276732767 是多少。

輸入格式

第 11 行是測試資料的組數 n(1 \le n \le 20)n(1≤n≤20),後面跟著 nn 行輸入。每組測試資料佔 11 行,包括乙個正整數 k (1 \le k < 1000000)k(1≤k<1000000)。

輸出格式

nn 行,每行輸出對應乙個輸入。輸出應是乙個非負整數。

輸出時每行末尾的多餘空格,不影響答案正確性

樣例輸入複製21

8樣例輸出複製

1408

#include

using

namespace std;

intmain()

cout<}return0;

}

用陣列的滾動比較方便,可以避免由於陣列過大而出現爆棧的問題

計蒜客 逃生(基礎動態規劃)

蒜頭君在玩一款逃生的遊戲。在乙個 n times mn m 的矩形地圖上,蒜頭位於其中乙個點。地圖上每個格仔有加血的藥劑,和掉血的火焰,藥劑的藥效不同,火焰的大小也不同,每個格仔上有乙個數字,如果格仔上的數字是正數說明是乙個藥劑代表增加的生命值,如果是負數說明是火焰代表失去的生命值。蒜頭初始化有 v...

計蒜客 劃分整數(動態規劃)

劃分整數 蒜頭君特別喜歡數學。今天,蒜頭君突發奇想 如果想要把乙個正整數 nnn 分解成不多於 kkk 個正整數相加的形式,那麼一共有多少種分解的方式呢?蒜頭君覺得這個問題實在是太難了,於是他想讓你幫幫忙。輸入格式 共一行,包含兩個整數 n 1 n 300 n 1 leq n leq 300 n 1...

計蒜客 乘法最大 動態規劃

題目鏈結 題解 參考 使用動態規劃,dp i j 表示前i個數中插入j個乘號的乘積最大值,要求插入j個乘號,可以將j個乘號拆出最後乙個單獨出來,這樣原來的數就分成了2部分,假如前一部分長度為k,則dp i j max dp k j 1 number k 1,len k j 相當於把第二部分的長度從1...