hdu 2294 Pendant 矩陣乘法

2021-06-20 14:51:47 字數 983 閱讀 7547



題意:求長度為1~n的項鍊,用必須用k種珍珠組成的方案數。

思路:首先可以想想dp,可以推出dp方程,用dp[i][j]表示長度為i的項鍊用j種珍珠的方案數。則dp[i][j]=dp[i-1][j]*j+dp[i-1][j-1]*(k-j+1),由於n非常大,因此直接dp是不現實的,因此我們想到了用矩陣乘法加速運算,矩陣a的元素分別是長度為n時用j種的方案數,因此要求的就為a+a^2+a^3……+a^n。可能我構造矩陣的方式有些奇怪?感覺和網上的思路都一樣,但是矩陣構造方式看不懂。。。。

**:

#include #include#include#include#include#include#include#include#include#include#define inf 0x3f3f3f3f

#define inf 0x3fffffffffffffffll

#define eps 1e-9

#define pi acos(-1.0)

#pragma comment(linker, "/stack:102400000,102400000")

using namespace std;

typedef long long ll;

const int maxn=33;

const ll mod=1234567891;

struct matrix

; matrix(int nn)

void init()

return x;

}matrix f(const matrix& a,ll n)

ll solve(ll n,int k)

{ if(n==1) return k;

matrix x(k),y(k);

y.clear();

for(int i=0;i

hrbust2294 修建傳送門

哈理工2016級新生程式設計全國邀請賽b題 n個點1 n,i到i 1的距離為a i 現在可以在兩個點之間建乙個傳送門,則兩點之間距離為0,求建傳送門後1號出發的最遠距離最小是多少?a i 的字首和為s i 假設在a b兩點建立傳送門後,兩點距離為dis i j 對於b固定的情況,最遠距離要麼是s n...

ssl2294 打包 dp練習

description 你現在拿到了許多的禮物,你要把這些禮物放進袋子裡。你只有乙個最多裝下v 體積物品的袋子,你不能全部放進去。你也拿不動那麼重的東西。你估計你能拿的最大重量為 g。現在你了解了每乙個物品的完美值 重量和體積,你當然想讓袋子中裝的物品的完美值總和最大,你又得計畫一下了。input ...

hrbust2294 方方正正

哈理工2016級新生程式設計全國邀請賽c題 乙個r行c列的01矩陣,告訴你每行的和 每列的和,問是否存在這樣的矩陣?首先,行和和列和之和要相等,否則一定是no。然後根據gale ryser定理判斷存在性 求出 r r 1 r 2 r m r i 行和大於等於i的行數 只要 r preceq s 就存...