bzoj 4162 shlw loves matrix II - 行列式 - 矩陣乘法 - 高斯消元
題目大意:
給一個nn的矩陣A,求其k次方。
。
題解:
考慮將
視為某個數列的第k項
(嚴格意義上是矩陣列?)
嘗試改造
的遞推式。
考慮:
即A減去若干倍的單位矩陣求行列式。
以33的矩陣為例,它張這個樣子:
顯然其會是一個關於x的n次多項式。
那麼根據定義有:
(啥你問我為啥帶入的不是實數而是個矩陣?其實嚴格的說法是,把F的係數copy一遍弄出一個新的以矩陣為變數的函式F’,然後根據某個C開頭的定理F’(A)=0,不過直觀"理解"
)
總之把這個多項式的係數插值出來,可以知道:
那麼我要求第k項:
或者說:
因此可以通過
算出
,套用常係數線性遞推即可。
複雜度
,複雜度瓶頸在於算n次行列式和預處理
。
#include<bits/stdc++.h>
#define rep(i,a,b) for(int i=a;i<=b;i++)
#define Rep(i,v) rep(i,0,(int)v.size()-1)
#define lint long long
#define mod 1000000007
#define ull unsigned lint
#define db long double
#define pb push_back
#define mp make_pair
#define fir first
#define sec second
#define gc getchar()
#define debug(x) cerr<<#x<<"="<<x
#define sp <<" "
#define ln <<endl
using namespace std;
typedef pair<int,int> pii;
typedef set<int>::iterator sit;
inline int inn()
{
int x,ch;while((ch=gc)<'0'||ch>'9');
x=ch^'0';while((ch=gc)>='0'&&ch<='9')
x=(x<<1)+(x<<3)+(ch^'0');return x;
}
const int N=53;int v[N][N],vs[N][N],a[N][N],b[N];
inline int fast_pow(int x,int k,int ans=1) { for(;k;k>>=1,x=(lint)x*x%mod) (k&1)?ans=(lint)ans*x%mod:0;return ans; }
inline int calc(int n,int x)
{
rep(i,1,n) memcpy(vs[i],v[i],sizeof(int)*(n+1));
rep(i,1,n) v[i][i]-=x,(v[i][i]<0?v[i][i]+=mod:0);
int det=1;
rep(i,1,n)
{
int x=i;rep(j,i,n) if(v[j][i]) x=j;
if(i^x) swap(v[i],v[x]),det=(det?mod-det:0);
if(!v[i][i]) { det=0;break; }x=fast_pow(v
相關推薦
bzoj 4162 shlw loves matrix II - 行列式 - 矩陣乘法 - 高斯消元
題目大意: 給一個nn的矩陣A,求其k次方。
n
≤
50
bzoj 4162: shlw loves matrix II 拉格朗日插值法+矩陣乘法
題意
給定矩陣 M,請計算 M^n,並將其中每一個元素對 1000000007 取模輸出。
對於 100% 資料,滿足 n <= 2^10000;k <= 50; 0 <= Mij < 10^9 +7
分析
我們可以帶入k+1
bzoj 4162 shlw loves matrix II
ide its pre bsp display sdi 假設 spa gist 求一個 $m \times m$ 矩陣的 $n$ 次方
$m \leq 50,n \leq 2^{10000}$
sol:
特征多項式是 $f(x) = |det(Ix - A)|$,插出
bzoj 1923: [Sdoi2010]外星千足蟲【高斯消元】
ios eterm char max ear space \n term n+1 裸的異或高斯消元
#include<iostream>
#include<cstdio>
using namespace std;
const int N=2005;
BZOJ 1013: [JSOI2008]球形空間產生器sphere(高斯消元)
題目:https://www.lydsy.com/JudgeOnline/problem.php?id=1013
思路:
存在二次項,考慮兩式相減可以把所有未知數的二次項消掉,
n+1 個等式用第一個與後面的做差,形成n個不等式,然後
高斯消元即可。
程式碼:
#include<c
hdu4305Lightning 生成樹計數(基爾霍夫矩陣)+高斯消元+逆元
題意:比較裸的生成樹計數問題。
如何處理生成樹計數問題?
基爾霍夫矩陣:
if i==j Kir[i][j] = i的度數
if i!=j Kir[i][j] = i到j的平行邊的個數的負數
即,基爾霍夫矩陣 = 度數矩陣 - 鄰接矩陣
將基爾霍夫矩陣刪去第i
【線性代數公開課MIT Linear Algebra】 第二課 矩陣與高斯消元
本系列筆記為方便日後自己查閱而寫,更多的是個人見解,也算一種學習的複習與總結,望善始善終吧~
1. Gauss Elimination 高斯消元
還是從線性方程組談起,對於以下方程組:
對其求解,我們使用高斯消元法:
想辦法消掉第二個與
BZOJ4162:shlw loves matrix II
std ++ mes sizeof \n ret gauss 快速冪 printf 傳送門
利用Cayley-Hamilton定理,用插值法求出特征多項式 \(P(x)\)
然後 \(M^n\equiv M^n(mod~P(x))(mod~P(x))\)
然後就多項式快速冪
[Luogu P2973&BZOJ 1778][USACO10HOL]趕小豬DOtP(高斯消元+期望)
http ios iostream 爆炸 head swa sca 選擇 main Description
一個無向圖,節點1有一個炸彈,在每個單位時間內,有可能在這個節點炸掉,也有p/q的概率隨機選擇一條出去的路到其他的節點上。問最終炸彈在每個節點上爆炸的概率。
So
【BZOJ3168】[Heoi2013]鈣鐵鋅硒維生素 高斯消元求矩陣的逆+匈牙利算法
def strong bzoj light sof turn 防止 宇宙 != 【BZOJ3168】[Heoi2013]鈣鐵鋅硒維生素
Description
銀河隊選手名單出來了!小林,作為特聘的營養師,將負責銀河隊選手參加宇宙比賽的飲食。眾所周知,前往宇宙的某個
BZOJ 2728 HNOI2012 與非 高斯消元
sca 邏輯 都是 -- cstring 位運算 不同的 ret asi
題目大意:給定k位二進制下的n個數,求[l,r]區間內有多少個數能通過這幾個數與非得到
首先觀察真值表 我們有A nand A = not A
然後就有not ( A nan
BZOJ 2466 [中山市選2009]樹(高斯消元)
using bzoj break ble isf 狀態 clas memset c++
【題目鏈接】 http://www.lydsy.com/JudgeOnline/problem.php?id=2466
【題目大意】
給定一棵樹,每個節點有一盞指示燈
實現求解線性方程(矩陣、高斯消去法)------c++程序設計原理與實踐(進階篇)
ipy 類型 cat sys sca solution gaussian 拷貝 img 步驟:
其中A是一個n*n的系數方陣 向量x和b分別是未知數和常量向量:
這個系統可能有0個、1個或者無窮多個解,這取決於系數矩陣A和向量b。求解線性系統的方法有很多,這裏使用一種經典
bzoj 2337 [HNOI2011]XOR和路徑【高斯消元+dp】
name 直接 ring size scanf 高斯消元 str pre hnoi 首先,我們發現,因為是無向圖,所以相連的點之間是有“依賴性”的,所以不能直接用dp求解。
因為是xor,所以按位處理,於是列線性方程組,設$ x[i] $為點i到n異或和為1的期望,因為從1
bzoj 3143 [Hnoi2013]遊走【高斯消元+dp】
sca source include hnoi2013 esp cst cpp std ans 參考:http://blog.csdn.net/vmurder/article/details/44542575
和2337有點像
設點u的經過期望(還是概率啊我也分不清,以下都
BZOJ 1013 [JSOI2008]球形空間產生器sphere | 高斯消元
math clas def 做了 bzoj n) class div com 題目:
http://www.lydsy.com/JudgeOnline/problem.php?id=1013
題解:
考慮二維的我們可以明白一個道理:
兩個點左邊可以表示一個方程,然後用兩
bzoj 3143 [Hnoi2013]遊走 期望dp+高斯消元
ace 保留 sca earch algorithm 整數 include 上進 連通
[Hnoi2013]遊走
Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 3394 Solved: 1493[Submit][St
BZOJ - 1013 高斯消元
線性 == scan 矩陣 log vector 第一個 for i++ n維空間中給出n+1個球面上的點求圓心坐標(x0,x1,...xn-1)
任選其中一個點坐標如第一個點(a0,b0...z0)
(x0-a0)^2+(x1-b0)^2+...=r^2
對於剩下的n個點
【高斯消元】BZOJ3503 [Cqoi2014]和諧矩陣
math esp fine eps bzoj3503 mem 組成 time ios
3503: [Cqoi2014]和諧矩陣
Time Limit: 10 Sec Memory Limit: 128 MBSec Special JudgeSubmit: 1197
bzoj 3270 博物館 高斯消元
inline n) int void online clu fine con zoj 題面
題目傳送門
解法
設\((x,y)\)表示第一個人在\(x\)房間,第二個人在\(y\)房間,然後列一個方程組即可
直接用高斯消元解一下就行了
時間復雜度:\(O(n^6)\)
代碼