xsy2041
bzoj4002
題意:
分析:
構造數列
∵
∴
然後就可以矩乘得到
由於
因此
bzoj1875
題意:
給定一張無向圖,每條路的長度都是1,沒有自環,可能有重邊,給定起點與終點,求從起點走t步到達終點的方案數。
每一步走的時候要求不能走上一條剛剛走的路。
分析:
這道題的思路,主要是構建矩陣的思路很巧妙。我們普通的用矩陣乘法轉移是用點來轉移,但是這樣不能去掉在一個地方逗留的情況。
一個很神奇的做法就是用邊來構圖(對於一條邊i,除去一條邊j滿足i==(j^1)的情況,與其他的邊都相連)轉移t-1次,然後同用與起點相連的邊構造的一個矩陣(相當於係數矩陣)相乘。最後統計答案,只需將終點相連的邊的答案加上即可。
bzoj2165
題意:
給定一張圖,求從1開始到達m的權值至少需要遍歷多少條邊
分析:
從每個點出發每走一步的轉移矩陣都是一樣的,於是可以考慮倍增。求答案時從大到小枚舉每個二進制位,更新g,若不存在從1開始長度>=m的路徑,這一位就是1。
bzoj2510
題意:
有M個球,一開始每個球均有一個初始標號,標號範圍爲1~N且爲整數,標號爲i的球有ai個,並保證
每次操作等概率取出一個球(即取出每個球的概率均爲
現在你需要求出,經過K次這樣的操作後,每個標號的球的期望個數。
分析:
設
再弄一波矩陣快速冪。但是時間複雜度是
發現這是一個循環矩陣,只要知道第一行就可以知道整個矩陣,於是乎時間複雜度變成了
bzoj1898
題意:
給出一張無向圖,這個圖中有一些魚,他們不同的時間會出現在固定的位置,呈週期性循環(週期只有2,3,4),一個人要在這個圖上走,他不能和魚同時在一個點上。問從s到t走k步有多少種方案。
分析:因爲週期只有2,3,4所以12就是一個大週期,每12個時間單位內的路徑轉移都是一樣的,於是構造出12個矩陣將它們相乘變爲一個大週期。整個整個週期的就快速冪,剩下的暴力乘。
bzoj1009
題意:
阿申準備報名參加GT考試,准考證號爲N位數
分析:
dp[i][j]表示考號弄到前i位時當前考號的後j位於不吉利考號的前j位相同。
題解1
題解2
bzoj2326
題意:
定義Concatenate(1,N)=1234567……n。比如Concatenate(1,10)=12345678910。給定n和m,求Concatenate(1,n)%m。
分析:
令
……
構造矩陣
注意分段矩陣運算時不能用分配率。
bzoj2476
題意:
令戰場定義爲可以從中間某個點向兩邊單調不增且不是一個長方形的柱子的序列,求周長爲p的柱子有多少個。
分析:
令f[n]爲周長爲2n的戰場數 不考慮【不是長方形】這個條件
如果一個戰場左右都沒有高度爲1的柱子,則方案數等價於將最下方一排砍掉的方案數 即f[n-1]
如果一個戰場左側或右側有一個高度爲1的柱子,則方案數等價於砍掉這個高度爲1的柱子的方案數 即2*f[n-1]
但是如果一個戰場左側和右側都有一個高度爲1的柱子,那麼這個戰場被上面那種情況計算了兩次,要減掉 方案數是f[n-2]
故得到遞推式f[n]=3*f[n-1]-f[n-2] 矩陣乘法搞出來 再減去長方形的方案數 即n-1即可。
bzoj4417 ☆☆☆☆☆
題意:
現有一個n行m列的棋盤,一隻馬欲從棋盤的左上角跳到右下角。每一步它向右跳奇數列,且跳到本行或相鄰行。跳越期間,馬不能離開棋盤。
分析:
令
將f[i][j]和g[i][j]的定義均改爲原來定義的前綴和:
bzoj2126
題意:
在一個圓上均勻分佈
分析:
將這
bzoj3610
bzoj1444
bzoj4180
bzoj3329
bzoj4128
循環矩陣
對於兩個循環矩陣 A 與 B 來說,A + B 也是循環矩陣。AB 也是循環矩陣,並且 AB=BA。這時只要確定第一行就確定了整個矩陣。