problem problem problem problem problem problem problem problem 3 迂迴 (tour)(tour)(tour)(tour)(tour)(tour)
【題目描述】 【題目描述】
給定一有向圖,邊長均為 1,求 長度 小於 k的環個數 mod m 。
保證 有向圖中 無自環 (即 g[i,i]='n') 。
什麼樣的環屬於不同 的解, 詳見樣例解釋。
【輸入格式】 【輸入格式】
第一行 n表示節點個數
接下來 n行長度為 n的字串 ,g[i,j]='y' 表示 i到 j有一條邊, g[i,j]='n' 反之。
最後一行兩個整數 k,m。
【輸出格式】 【輸出格式】
乙個整數表示答案 .
【樣例輸入】 【樣例輸入】
4nyny
nnyn
ynnn
ynnn
6 100
【樣例輸出】 【樣例輸出】
12【樣例解釋】 【樣例解釋】
12 個解分別為: 。。。。。。
【資料範圍】 【資料範圍】
對於 30% 的資料, n<=40 , k<=1000
對於 60% 的資料 , n<=80
對於 100% 的資料 ,n<=100,k<=10^6,m<=10^9
不難發現,答案其實就是在k步以下,有多少種不同的方案可以讓你走回你的起點,明顯的矩陣快速冪模型。
但是n<=100,所以n^3logn很卡常,更何況求的是矩陣等比數列之和。
矩陣套矩陣會直接t,需要玄學優化矩陣乘法的常數,具體看**:
accode(矩陣套矩陣):
#include#include#include#include#define maxn 205
using namespace std;
int n,m,k,n;
char s[maxn];
struct mat
int main()
inline void sumpow(int ret[maxn][maxn],int base[maxn][maxn],int k)
int main()
scanf("%d%d",&k,&m);
sumpow(b,a,k-1);
int ans=0;
for(int i=0;ians=(ans+b[i][i])%m;
printf("%d\n",ans);
}
遞迴的就不想寫了。。。。。。 省選模擬賽Day7 T3 隨便亂走
題意 乙個n個點的環,當你在i號點時有pi 2的概率走向 i n 1 號點,有pi 2的概率走向 i 2 n n 1 號點,有 1 pi 的概率永遠停下,動態修改pi,多次詢問從i號點出發走的距離的期望值f i 範圍n 100000 這個題就是誘導人去想高斯消元的,然後複雜度 電腦高斯消元會 那麼我...
啟智樹衝省隊組Day4T3 疏散
一棟大樓中 10 5 個人緊急疏散。大樓可以被視作網格圖 正檢視 有三個區域,由兩個寬為 1 的樓道隔開。走出樓道最下面即為離開。同一時刻乙個位置只能有乙個人。左右區域的人不能互相串。每個人每一秒能移動一格。問所有人離開所需的最小時間 這題正解比暴力好寫 一般貪心題都這樣 因此考場上沒想到貪心就很難...
省選模擬賽03 16 T3 超級樹
目錄一棵 k 超級樹 k supertree 可按如下方法得到 取一棵深度為 k 的滿二叉樹,對每個節點向它的所有祖先連邊 如果這條邊不存在的話 例如,下面是乙個 4 超級樹 請統計一棵 k 超級樹 中有多少條不同的簡單有向路徑,對 mod 取模。input 一行兩整數 k,mod。output 一...