DTOJ 4019 白玉樓前

2021-08-30 15:28:07 字數 1705 閱讀 5194

白玉樓前

【題目背景】

「一覺醒來怎麼半靈又不見了?一定是幽幽子吃了。」

「幽幽子你給我吐出來!」

「我這邊有個遊戲玩不過去,你幫我玩過去我就吐出來。」

【題目描述】

妖夢現在要玩幽幽子的遊戲,她才能拿回自己的半靈。

遊戲規則是這樣的:

幽幽子有n

nn 個點,現在她讓妖夢對每個點隨機一條出邊(隨機到每個點的概率都相等),

然後得到一張圖。(注意:可以自環)

如果這張圖任意乙個點沿著邊走兩步(顯然這樣的走法唯一)都能到達自身,則幽幽子可以通關。

現在幽幽子想問妖夢,她通關的概率是多少?

兩個圖不同,當且僅當存在一條邊出現在圖a 中且不出現在圖b 中。圖中的點有編號,邊無編號。

答案m od

modmo

d998244353

998244353

998244

353【輸入格式】

第一行乙個數t

tt 表示資料組數:

下面t 行,每行中只有乙個數,表示nnn。

【輸出格式】

輸出t 行,每行乙個數表示答案。

【樣例輸入】11

【樣例輸出】

1【樣例解釋】

只有1

−>

11->1

1−>

1 這種情況,且符合題意。

【資料範圍】

t ≤5

×105

,n≤5

×105

t \leq 5\times 10^5,n\leq 5\times 10^5

t≤5×10

5,n≤

5×10

5題解:

(最近是出題人比較喜歡東方吧qaq,上次是兔子,這次就成幽幽子了。。)

問題就是轉化為求乙個排列的對偶排列個數。

先考慮方案數。

設f if_

fi​表示合法的方案數。

對於乙個n−1

n-1n−

1個點的圖,考慮對於第n

nn 個點,可以有兩種情況,

乙個是它單獨形成了乙個自環,乙個是與前(i−

1)

(i-1)

(i−1

)個點中的乙個點手牽手形成乙個環,就剩下(i−

2)

(i-2)

(i−2

)個點的方案惹。。。

//orzlkw

#includeusing namespace std;

#define in inline

#define rep(i,a,b) for(int i=a;i<=b;i++)

#define repd(i,a,b) for(int i=a;i>=b;i--)

#define for(i,a,b) for(int i=a;iin void g(t&t)

typedef long long ll;

const ll mod=998244353;

const int n=5e5+233,l=5e5;

ll f[n];

in ll qp(ll x,ll y)return res%mod;

}in ll inv(ll x)

int main()

return 0;

}

關於401的錯誤

1 錯誤號401.1 症狀 http 錯誤 401.1 未經授權 訪問由於憑據無效被拒絕。分析 由於使用者匿名訪問使用的賬號 預設是iusr 機器名 被禁用,或者沒有許可權訪問計算機,將造成使用者無法訪問。解決方案 1 檢視iis管理器中站點安全設定的匿名帳戶是否被禁用,如果是,請嘗試用以下辦法啟用...

401的錯誤分析

在介面的測試中,經常會遇到客戶端向服務端傳送乙個請求,服務端返回401的錯誤,那麼今天本文章就來說明在介面測試中如何分析以及解決該問題。我們知道在http返回的狀態碼中,401錯誤表示的是被請求的頁面需要使用者名稱和密碼。401的錯誤詳細的可以描述為 客戶端傳送請求抖到服務端,頁面需要驗證服務端會返...

DTOJ5057 英雄聯盟

小 l 和小 c 在玩 wild rift。眾所周知,wild rift 中的暴擊是非常不靠譜的。他會在一開始設定乙個引數 x 如果第一刀不暴,則第二刀的暴率增加到初始值的 2 倍 如果還是不暴,就繼續增加到初始值的 3 倍,以此類推,當疊加到 100 以上的時候,預設下一發一定暴擊。當一次觸發了暴...