牛客小白月賽6 J 洋灰三角

2021-10-24 04:45:35 字數 1306 閱讀 4699

題目鏈結

洋灰是一種建築材料,常用來築橋搭建高層建築,又稱,水泥、混凝土。

whz有很多鑄造成三角形的洋灰塊,他想把這些洋灰三角按照一定的規律放到擺成一排的n個格仔裡,其中第i個格仔放入的洋灰三角數量是前乙個格仔的k倍再多p個,特殊地,第乙個格仔裡放1個。

whz想知道把這n個格仔鋪滿需要多少洋灰三角。

第一行有3個正整數n,k,p。

輸出一行,乙個正整數,表示按照要求鋪滿n個格仔需要多少洋灰三角,由於輸出資料過大,你只需要輸出答案模1000000007(1e9+7)後的結果即可。

3 1 1
6
3 2 2
15
3 3 3
28
典型的矩陣快速冪,好久沒寫了,今天正好練一下,設 a

na_n

an​ 為答案,容易得到遞推矩陣:

[ an

an−1

1]=[

k+1−

kp10

0001

][an

−1an

−21]

\begin a_n\\ a_\\ 1\\ \end=\begin k+1&-k&p\\ 1&0&0\\ 0&0&1\\ \end \begin a_\\ a_\\ 1\\ \end

⎣⎡​an​

an−1

​1​⎦

⎤​=⎣

⎡​k+

110​

−k00

​p01

​⎦⎤​

⎣⎡​a

n−1​

an−2

​1​⎦

⎤​特判 n=1

n=1n=

1 即可,ac**如下:

#include

using

namespace std;

typedef

long

long ll;

const ll mod=

1e9+7;

ll n,k,x,y;

struct mat

;mat a,ans;

mat mul

(mat a,mat b)}}

return c;

}void

mat_pow

(mat a,ll k)

}int

main()

return0;

}

牛客小白月賽6 J 洋灰三角

題目 當n 1時,直接輸出1 當k 1時,fn是個等差數列,求和公式直接做 當k 2時,下面給出我的推導過程 涉及到高數裡面的求和過程,先對乙個數列求導,再求和,再積分 也可以先積分,再求和,再微分 倒數第三行就是先對原求和數列進行微分求和,再對求和結果進行積分 賦上 include include...

牛客 牛客小白月賽6 J 洋灰三角

時間限制 c c 1秒,其他語言2秒 空間限制 c c 262144k,其他語言524288k 64bit io format lld 題目描述 洋灰是一種建築材料,常用來築橋搭建高層建築,又稱,水泥 混凝土。whz有很多鑄造成三角形的洋灰塊,他想把這些洋灰三角按照一定的規律放到擺成一排的n個格仔裡...

牛客洋灰三角 矩陣快速冪

題目描述 洋灰是一種建築材料,常用來築橋搭建高層建築,又稱,水泥 混凝土。whz有很多鑄造成三角形的洋灰塊,他想把這些洋灰三角按照一定的規律放到擺成一排的n個格仔裡,其中第i個格仔放入的洋灰三角數量是前乙個格仔的k倍再多p個,特殊地,第乙個格仔裡放1個。whz想知道把這n個格仔鋪滿需要多少洋灰三角。...