題目鏈結
洋灰是一種建築材料,常用來築橋搭建高層建築,又稱,水泥、混凝土。
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個格仔鋪滿需要多少洋灰三角。...