初賽好像不會掛了,好開心!
版權原因,不上傳題目。
題意:求1∼
n(n≤
1000
) 的排列中逆序對恰好為
k 個的排列數目。多測。
題解:f[
i][j
]表示前
i 個數,逆序對個數恰好為
j的排列個數,易得轉移方程f[
i][j
]=∑i
−1k=
0f[i
−1][
j−k]
,用字首和優化可使複雜度降為o(
n2) 。
題意:對於乙個長度為n(
n≤2000
) 的序列,定義位置
i 的優美值為最長的區間[l
,r]的長度,使得l≤
i≤r ,且[l
,r] 中位數為位於位置
i 的數(比較時,以數值為第一關鍵字,下標為第二關鍵字進行比較,因此區間長度一定是奇數)。給出q(
q≤100000
)組詢問,每次詢問乙個區間內的優美值最大值。
題解:首先列舉位置,然後從該位置出發,用f[
i]記錄向左移動左端點時,比該位置大的數與比該位置小的數數量差恰好為
i 時的區間長度最大值,g[
i]記錄向右時的值,最後ma
x(f[
i]+g
[j])
(i+j
=0) 即為該位置的優美值。最後o(
n2) 預處理出每個區間的答案,o(
1)回答詢問。
題意:對於乙個初始為空的多重集,有三種操作,分別為加入乙個數、刪除乙個數,和給定乙個數
s 並詢問集合中x(
x∧s=
x)的個數,操作總數n≤
200000
,插入和查詢的數字
s 滿足
0<
s<216
。題解:考慮兩種暴力做法:a.用f[
i]表示數字
i 的個數,對於每個詢問都列舉一遍
i,並驗證是否i∧
s=i ,從而使得單次插入複雜度為o(
1),單次詢問複雜度為o(
s),最差複雜度為o(
n⋅s)
。b.用f[
i]表示滿足i∧
s=s 的數字
s 的個數。對於每次插入,都要列舉一遍
i,並驗證是否i∧
s=s 。單次插入複雜度為o(
s),單次詢問複雜度為o(
1),最差複雜度為o(
n⋅s)
。以上兩種暴力做法各有優劣,但都不夠優秀,因此想到平衡規劃。用f[
i][j
] 表示集合中滿足條件的數字
s 的個數,其前8位恰好為
i,且後8位與
j 進行按位與運算後恰好與自身後8位相等。對於每次插入操作列舉
j,詢問操作列舉
i ,複雜度均為o(
s√),總複雜度為o(
n⋅s√
) 。
總結:考慮不夠細緻,沒有仔細觀察過資料範圍中的細節,提示本身應該是很明顯的。
訓練日記 20170324
長久不更新部落格了。期間經歷了恰好被ag線踩的wc,經歷了漫長痛苦的小高考準備。現在終於可以重整旗鼓,向省選進發!幾個月來,唯一不變的是我仍然是個超級蒟蒻 版權原因,不上傳題目。題意 最小樹形圖 去年就接觸 聽說 過的演算法,一直沒有真正寫過。因為各種奇怪的細節錯誤,調了好幾個小時 比如找環時沒有判...
訓練日記 20170328
今天的題目似乎很水 好多人都提前ak離場了,於是提前一小時收題。但是我還是各種不會。思維江化?話說,聽到一句很有趣的話 山不在高,有林則徐 水不在深,有江 題意 給定一棵有n n 105 個節點的有根樹,編號互不重複。詢問有多少棵子樹內節點編號構成乙個連續區間。題解 水題,對於每個節點 i 記錄以該...
訓練日記 20170419
題意 二維平面上有n n 200,000 個傳送門,第i 個傳送門位於 x i,yi 且可以傳送到以自身位置為左下角,以 a i,bi 為右上角的平行座標軸的矩形中任何乙個其他傳送門。任意選定起點和終點,求從起點傳送到終點的路徑上最多經過多少個傳送門。座標範圍在0 200,000 之間。空間限制51...