1. 程式人生 > >矩陣乘法 模板

矩陣乘法 模板

程式碼倉庫(例為2*2的矩陣,其餘根據當時情況修改)

struct Matrix {
	long long a[2][2];
	Matrix() {
		memset(a, 0, sizeof(a));
	}
	Matrix operator * (const Matrix y) {
		Matrix ans;
		for(int i = 0; i <= 1; i++)
			for(int j = 0; j <= 1; j++)	
				for(int k = 0; k <= 1; k++)	
					ans.a[i][j] += a[i][k]*y.a[k][j];
		for(int i = 0; i <= 1; i++)
			for(int j = 0; j <= 1; j++)
				ans.a[i][j] %= M;
		return ans;
	}
	void operator = (const Matrix b) {
		Matrix ans;
		for(int i = 0; i <= 1; i++)
			for(int j = 0; j <= 1; j++)
				a[i][j] = b.a[i][j];
	}
};


相關推薦

矩陣乘法模板C/C++

由於矩陣相乘是諸多演算法中的基礎,就像乘法之於快速冪一樣,所以有必要熟練掌握,以下模板是我個人覺得用起來比較方便的,但是隨著時間遷移肯定是需要對其進行精進的。 程式碼示例: struct Matrix{ int n,m; int v[maxn][maxn]; Matrix(int

Luogu P1962 斐波那契數列(矩陣乘法模板

傳送門(其實就是求斐波那契數列....) 累了 明天再解釋 #include<cstdio> #define ll long long using namespace std; const ll mod = 1000000007; struct matrix {

矩陣乘法 模板

程式碼倉庫(例為2*2的矩陣,其餘根據當時情況修改) struct Matrix { long long a[2][2]; Matrix() { memset(a, 0, sizeof(a)

模板C++ 02數論算法 4矩陣乘法

矩陣 快速冪 行數 正方形 eof str memset isp images 矩陣乘法:用來求某種 遞推關系。 矩陣相乘只有在第一個矩陣的列數和第二個矩陣的行數相同時才有意義。 定義 設A為A*M的矩陣,B為M*B的矩陣,那麽矩陣C為矩陣A與B的乘積,其中矩陣C中的第i行

模板——矩陣快速冪+矩陣乘法

一個 ace 快速 應該 namespace cin ast c++ truct #include<bits/stdc++.h> using namespace std; const long long P=1e9+7; long long n,m;

模板矩陣乘法

template<int x, int y> struct matrix { int s[x][y]; matrix() {memset(s, 0, sizeof(s));} matrix(int a[x][y]) {memcpy(s, a, sizeof(a));}

Luogu P4643 【模板】動態dp(矩陣乘法,線段樹,樹鏈剖分)

題面 給定一棵 \(n\) 個點的樹,點帶點權。 有 \(m\) 次操作,每次操作給定 \(x,y\) ,表示修改點 \(x\) 的權值為 \(y\) 。 你需要在每次操作之後求出這棵樹的最大權獨立集的權值大小。 題解 如題所示 , 是個模板題 ... 首先考慮靜態 \(dp\) , 令 \(dp_{u,

【BZOJ2553】[BeiJing2011]禁忌 AC自動機+期望DP+矩陣乘法

現在 using put 重疊 [0 return name 概念 註意 【BZOJ2553】[BeiJing2011]禁忌 Description Magic Land上的人們總是提起那個傳說:他們的祖先John在那個東方島嶼幫助Koishi與其姐姐

【BZOJ4870】組合數問題 [矩陣乘法][DP]

mes def online cli char spa ++ soft sed 組合數問題 Time Limit: 10 Sec Memory Limit: 512 MB[Submit][Status][Discuss] Description   

矩陣乘法】CDOJ1610 黑紅梅方

ios tdi using long spa iostream for fin opera 考慮用4^n-不存在連續4個相同的。 f(i,j,k,l)表示以i為結尾的序列,最後三位分別是j,k,l時的方案。 可以轉移,寫一個64*64的轉移矩陣。 貌似可以優化?……未完待續

理解矩陣乘法

向量 com 結果 lin 個數字 方程組 模型 計算 角度 矩陣加法就是相同位置的數字加一下。 矩陣減法也類似。 矩陣乘以一個常數,就是所有位置都乘以這個數。 但是,等到矩陣乘以矩陣的時候,一切就不一樣了。 這個結果是怎麽算出來的? 教科書告訴你,計算規則是,第一個

zoj 2317 Nice Patterns Strike Back(矩陣乘法)

scanner article value charat name amp -s ann zju problemId=1317">http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=1317

【BZOJ1444】[Jsoi2009]有趣的遊戲 AC自動機+概率DP+矩陣乘法

pri 註意 script aaaaa mil size borde tput char 【BZOJ1444】[Jsoi2009]有趣的遊戲 Description Input 註意 是0<=P Output Sample

LibreOJ #100. 矩陣乘法

fin clas scanf == 順序 log pre har amp 二次聯通門 : LibreOJ #100. 矩陣乘法 /* LibreOJ #100. 矩陣乘法 矩陣乘法 註意兩個矩陣寬與高相乘的順

藍橋杯基礎練習---矩陣乘法

cst ans 時間限制 str 絕對值 忘記 個數 clu 表示 基礎練習 矩陣乘法 時間限制:1.0s 內存限制:512.0MB 錦囊1 錦囊2 錦囊3 問題描述   給定一個N

【bzoj3231】[Sdoi2008]遞歸數列 矩陣乘法+快速冪

style 其中 std span 處理 轉化 struct set sizeof 題目描述 一個由自然數組成的數列按下式定義: 對於i <= k:ai = bi 對於i > k: ai = c1ai-1 + c2ai-2 + ... + ckai-k

【BZOJ2510】弱題 期望DP+循環矩陣乘法

mem ret sam include std bsp 都是 size 個數 【BZOJ2510】弱題 Description 有M個球,一開始每個球均有一個初始標號,標號範圍為1~N且為整數,標號為i的球有ai個,並保證Σai = M。 每次操作等概

矩陣乘法】OpenJ_POJ - C17F - A Simple Math Problem

() sign pri space con class std name per 算(7+4*sqrt(3))^n的整數部分(mod 1e9+7)。 容易想到矩乘快速冪,但是怎麽算整數部分呢? (7+4*sqrt(3))^n一定可以寫成a+b*sqrt(3),同理(7-4*

矩陣乘法

cout ons [1] operator bit nbsp spa mod turn #include<bits/stdc++.h>using namespace std;const int N=2;const int MOD=10000;struct M

矩陣乘法】Gym - 101412C - One-Dimensional Cellular Automaton

lar pac pen cnblogs int tor auto while images 給你一個一維細胞自動機,第i個格子在時刻t的狀態是這樣獲得的,問你t時刻的狀態。 把0時刻的狀態視作一個列向量,發現狀態轉移其實是一個n*n的矩陣(以n=5為例), B C