時間限制: 1 sec 記憶體限制: 128 mb
提交: 11 解決: 10
[提交] [狀態] [命題人:admin]
題目描述
小可可參觀科學博物館時,看到一件藏品,上面有密密麻麻的數字,如下所示:
1 2 3 5 8 13 21 34 55 89 144 ...
4 7 11 18 29 47 76 123 199 322 521 ...
6 10 16 26 42 63 110 178 288 466 754 ...
9 15 24 39 63 102 165 267 432 699 1131 ...
12 20 32 52 84 136 220 356 576 932 1508 ...
14 23 37 60 97 157 254 411 665 1076 1741 ...
17 28 45 73 118 191 309 500 809 1309 2118 ...
19 31 50 81 131 212 343 555 898 1453 2351 ...
22 36 58 94 152 246 398 644 1042 1686 2728 ...
25 41 66 107 173 280 453 733 1186 1919 3105 ...
27 44 71 115 186 301 487 788 1275 2063 3338 ...
...
仔細一分析,發現還挺有規律。
原來,第一行是fibonacci數列。即,該行中除了第乙個和第二個數分別為1和2之外,其他數都是其左側相鄰的兩個數之和。
其後各行也類似於fibonacci數列。只是第i行的第乙個數是前 行中未出現的最小正整數,而其第二個數與該行第乙個數以及所在行的編號相關,即a[i,2]=a[i,1]*2-(i-1) 。如在第一行中未出現的最小正整數為4,前三行中未出現的最小正整數為9。故第二行以4和7開頭,而第四行以9和15開頭。
小可可高興地把這個發現告訴了爺爺。爺爺問道:你能否一口報出第i行、第j列的那個數對m取模的結果是多少呢?
聰明的小可可通過心算就能知道答案。你是否能編寫程式求解呢?
輸入每行有三個分別用乙個空格隔開的正整數,分別是i、j和m。其中,i, j<=1000000000 ,2<=m<=10000 。
輸出每行輸出對應的第i行、第j列的那個正整數對m取模的結果。
複製樣例資料
1 2 99樣例輸出
2發現一道很有意思的題目,根據題意,我們的任務重點放在了如何求解每一行的第乙個數,而第二項的遞推式子已經給出,後面的第j項,可以用矩陣快速冪直接求解。
打了個表觀察第一列的數字,會發現每十三個數分別增加3,2,3,3,2,3,2,3,3,2,3,3,2,所以我們將這十三個數存下來就ok了。一道無從下手的題秒變水題。
ac**
#include typedeflong
long
ll;using
namespace
std;
ll mod;
struct
mat }
return
res;
}};mat qpow(mat a,ll b)
return
ans;
}int nb[14]=;
ll a,b;
intmain()
UPC 方格取數
題目描述 在 n 行 m 列的方格矩陣中,每個方格都包含乙個數字。小明可以從任意方格出發開始移動。每次移動可以移到與當前方格有一條邊相鄰的方格 即向上 下 左或右方向移動 1 格,且不能移出邊界 除此之外,你移動到的方格中的數字必須比當前方格中的數字更大。請你幫助小明程式設計規劃移動路徑,使路徑上經...
數論 數的倍數
曾在做牛客的小白賽遇到這樣的問題,我來總結下 牛客原題鏈結如下 題目很簡單,但是需要總結下,accepted 如下。所有數字的和為3的倍數的數為3的倍數 末位為5或0的數為5的倍數 末三位相加為8的倍數的數為8的倍數 如果乙個整數的奇數字上的數字之和與偶數字上的數字之和的差能 被11整除,那麼這個數...
數論 7041125因子數
因子數 7041125因子數 難度級別 b 執行時間限制 1000ms 執行空間限制 51200kb 長度限制 2000000b 試題描述 計算c n,k 的因子的個數。輸入有多行,每行包含兩個正整數 n 和 k 用乙個空格分隔。輸出多行,每行包含乙個數,依次為各組輸入資料對應的結果。輸入示例 5 ...