傳送門
一直不是很會做矩陣類的題(其實是什麼題都不會做)。
積累了新思路(腦洞):
發現如果邊權只有0跟1,那麼就是最簡單的快速冪問題。但邊權並不是,不過邊權很小,只有1 ~ 9,所以我們可以在原有的矩陣上擴充套件一些虛點,將大於1的邊權用1來表示出來。
其實這樣用簡單的問題來組合出複雜問題的思路還是挺常見的。
#include #include #include #include using namespace std;
const int maxn = 100;
int n, m;
int base[maxn][maxn], tmp[maxn][maxn], c[maxn][maxn];
void matpow(int t)
if (c[i][j] >= 2009) c[i][j] %= 2009;
} }
for (int i = 1; i <= n * 9; i++)
for (int j = 1; j <= n * 9; j++)
tmp[i][j] = c[i][j];
} memset(c, 0, sizeof c);
for (int i = 1; i <= n * 9; i++)
if (c[i][j] >= 2009) c[i][j] %= 2009;
}} for (int i = 1; i <= n * 9; i++)
for (int j = 1; j <= n * 9; j++)
base[i][j] = c[i][j];
t >>= 1;
}}int main()
}matpow(m);
printf("%d\n", tmp[1][n]);
return 0;
}
1297 SCOI2009 迷路 矩陣乘法
windy在有向圖中迷路了。該有向圖有 n 個節點,windy從節點 0 出發,他必須恰好在 t 時刻到達節點 n 1。現在給出該有向圖,你能告訴windy總共有多少種不同的路徑嗎?注意 windy不能在某個節點逗留,且通過某有向邊的時間嚴格為給定的時間。第一行包含兩個整數,n t。接下來有 n 行...
矩陣乘法 矩陣乘法的基本實現
求解關於兩個矩陣的乘積 參考線性代數裡面的兩個矩陣相乘的規則,我這裡不再贅述,詳情附上了乙個鏈結,我的程式設計也是用了裡面的例子 這裡寫鏈結內容 具體的過程我會在 片裡面加上注釋 矩陣乘法 author seen 2015 09 18 include using namespace std int ...
mysql 矩陣乘法 矩陣乘法高階操作
對於矩陣乘法的一些操作 我們 其實 大部分是 多追加乙個係數 或者和 其他演算法連在一起。至於核心無非就是 先列出dp 方程再優化 或者 直接 對題目進行建模 構建矩陣。至於矩陣乘法的正確性 形狀的正確性 是可以證明的 但是內部最真實的正確性我還無法證明。這道題是 字串型別的題目 求方案數 很煩 大...