2021 Hubei Provincial Collegiate Programming Contest/2021湖北省賽 題解

gmh77發表於2024-11-16

按解決順序排列

目錄
  • F
  • A
  • I
  • D
  • H
  • E
  • C
  • K
  • J
  • G
  • B

F

二分答案ans,放最小的前ans個bi(變成必須放完)

因為bi=2^k,所以小的放了可能會拆散大的空間,大的把小的地方佔了的話小的可以塞其他地方,所以先放大的

然後暴力能放則放,最多log次指標回到開頭

所以一次求解O(nlogn),總複雜度log^2

A

模擬,暴力列舉暴力異或

注意X串要多留k-1位

I

把限制Pa!=b變成叉掉點(a,b),畫一下發現問題等於求多少個內部沒有叉的合法矩形 (a~b,L~R)

經典問題(疑似),列舉R,維護每個點(x,R)左邊的最大長度,那麼一對a0,b0對應 min L[x] (x in (a0,b0)) 個 (a0~b0,某L,R) 的矩形,單調棧維護,在彈掉時可以求出跨過某x的方案

D

列舉r,倒著列舉l,依次把a[l]在權值數軸上點亮

然後經典問題維護連續區間個數,個數=點-邊,邊就是相鄰兩個都點亮了的,個數<=2合法

(tips:可以做到O(nlogn)……)

H

題意:每次把當前圖的x->y->z->...->x且權值和<=3的環的權值變為0,然後持續操作直到不能變為止,求最短路

一開始會把三元環給邊0,然後 三元環點->x->(y)->三元環點 的點變0,如此反覆

可以發現權值變為0等於縮點,縮得的團內的邊都是0,團外邊位1,現在要模擬縮點的過程

記點x的入邊對應團集合為In[x],出為Out[x],那麼 團內點->x->(y)->團內點 的判定條件為 In[x]&Out[y]!=0,列舉x,y(若沒有y則會列舉y=團內點,也可以判到),bitset最佳化判斷即可

一共縮n次,每次列舉m條邊,check複雜度n/ω,所以總複雜度O(n^2m/ω)

E

神題,我懂得欣賞

https://www.cnblogs.com/gmh77/p/18550020

C

(咕)

K

J

G

B

相關文章