開心,zkx 打算畫一束花送給cc。
可問題是zkx 發現他並不會畫花,但機智的他卻發現只要先畫一棵五顏六色的樹,再把它翻轉180 度就
是一株漂亮的花了!zkx 決定用p 種顏色花這棵樹。
但是乙個節點乙個節點畫太慢了,於是zkx 決定執行如下q 次操作:
1: 選取某種顏色,為c,並且選定乙個數字k
2: 將每個顏色為c 的葉子節點下面從左向右依次接上顏色為a1; a2; ::; ak 的k 個節點(保證顏色為c 的
節點一定存在)
初始時zkx 有乙個顏色為1 的節點。經過k 操作,zkx 就有了一棵很大的樹。
我們先序遍歷這棵樹,並且無視所有非葉節點。設得到的葉子節點顏色序列為v0; v2; ::; vm 那麼這棵樹
的美麗度為
value =
σmi=0
vi li
其中l 為cc 喜歡的乙個數。
現在zkx 想知道,這棵樹的美麗值對於998244353 取模的結果。
1.2 輸入格式
第一行三個整數p; q 和l。
接下來的q 行,每行給出k 和顏色c, 以及接在顏色c 下的從左向右依次k 個點,a1; a2; ::; ak
結合樣例食用更佳。
1.3 輸出格式
乙個整數,表示value 對於998244353 取模的結果
1.4 樣例輸入
4 3 2
3 1 1 2 3
3 2 1 1 4
1 1 4
21.5 樣例輸出
1081.6 樣例解釋
最後獲得了圖的一棵樹
最後的到的v 序列為4; 4; 4; 4; 3
1.7 資料範圍
對於40% 的資料
1 p; q 10; 1 l 10, 且1
σk 100
對於100% 的資料
1 p; q 105; 1 l 108
保證每個詢問中1 c; ai p, 且1 σ
k 106
#include #define n 400100
#define m 2001000
#define mod 998244353
using namespace std;
int n, m, l;
int ci[n], fs[n];
int bi[m], tl;
int powi(int a, int b)
int li[n], di[n];
int main()
}fs[m + 1] = tl;
for (int i = 1; i <= n; ++ i) li[i] = 1, di[i] = i;
for (int i = m; i >= 1; -- i)
li[ci[i]] = nl;
di[ci[i]] = nd;
}printf("%d", di[1]);
}
數學 亂搞 AOJ 331 漢諾塔
description 大家都聽說過漢諾塔吧?有n個圓盤由小到大排列,套在a柱上,每次只能移動乙個圓盤,而且只能大的在下,小的在上,讓你把a柱上的圓盤移到b柱,給你乙個多餘的c柱,問你最少移動多少次才能完成任務。input 輸入有多組資料,每組包括乙個整數n n 10000000 表示初始狀態下有n...
亂搞 正確姿勢的亂搞 模擬退火
模擬退火大概原理就是將熱力學裡面金屬退火的原理放在了統計學意義中。其在電腦科學中的應用也是很可觀的 處理一些無法用多項式時間複雜度解決的np問題。對於一些最優化問題,往往我們可以轉化為乙個神奇的函式 引數不限 比如像這樣 如果這個函式滿足單峰性,我們往往可以直接套用三分來處理,但是都說了這如果是乙個...
質數串 亂搞
乙個正整數x 是質數,當且僅當x 2 且x不是任何乙個 2,x 1 的數的倍數。乙個數字串是 質數串 當且僅當它的每個非空連續子串表示的數字都是質數。例子1 373 是質數串,它的子串有 3 37 373 7 73 3 這些串表示的數字都是質數。例子2 55 不是質數串,因為 55 這個子串表示的數...