牛客洋灰三角 矩陣快速冪

2021-08-25 05:40:44 字數 1095 閱讀 1528

題目描述

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

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

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

輸入描述:

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

輸出描述:

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

示例1輸入

複製3 1 1

輸出複製6說明

洋灰三角鋪法:1 2 3,總計6個

示例2輸入

複製3 2 2

輸出複製

15說明

洋灰三角鋪法:1 4 10,總計15個

示例3輸入

複製3 3 3

輸出複製

28說明

洋灰三角鋪法:1 6 21,總計28個

備註:對於100%的測試資料:

1 ≤ n ≤ 1000000000

1 ≤ k,p ≤ 1000

|f[n]     sum[n-1]  p|

*|k   1    0|

|0   1    0|

|1   0    1|

=|f[n+1]   sum[n]  p|

遞推式如上

#include#include#include#includeusing namespace std;

typedef long long ll;

ll mod=1e9+7;

const int maxn=3;

const int maxm=3;

int n,k,p;

struct matrix

matrix operator *(const matrix &b) const

cout<>n>>k>>p;

if(n<2)

cout<<1

pow(n-1);

}

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

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

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

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

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

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