省選模擬賽Day4T3迂迴

2021-08-16 07:57:16 字數 1280 閱讀 5718

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 一...