題意就是給每個 b
ib_i
bi 分配乙個 a
ja_j
aj,最小化 max(
bi−a
j)
−min(
bi−a
j)
\max(b_i-a_j)-\min(b_i-a_j)
max(bi
−aj
)−min(b
i−a
j)我們列舉最小值,用雙指標 + 資料結構維護最大值就可以了
每個數能填進去的是乙個區間,這取決於它前面有沒有 >
>
>
它的值將它卡住
即求它前面大於它的最小位置,在這個區間中 low
erbo
un
dlowerbound
lowerb
ound
填進去就可以了
若 a
>b×
ca>b\times c
a>b×
c 那麼為 +
∞+\infty
+∞令 k =⌊
abd⌋
k=\lfloor \frac\rfloor
k=⌊bda
⌋,那麼我們會在用了 k+1
k+1k+
1 次後截斷
題意:翻轉顏色,求有偶數條黑邊的路徑長度最大值
我的想法是 lct
lctlc
t 維護乙個到最左點最優點 奇 / 偶 條黑邊的最大值,邊化點
需要維護虛子樹的資訊
但觀察一下發現,若直徑不是答案,設當前答案沒有乙個點在直徑上
利用直徑上任意一點切開兩邊的奇偶性不同,可以將答案調整到在乙個直徑的端點上
以直徑為根,那麼操作就是子樹翻轉顏色,資料結構維護即可
我們暴力搞乙個 sgsg
sg函式sgj
,i
=mexk=
i+1m
sgi,
k∣(j
=0∪a
k−ai
>ai
−aj)
sg_=\text_^msg_|(j=0\cup a_k-a_i>a_i-a_j)
sgj,i
=mexk=
i+1m
sgi
,k∣
(j=0
∪ak
−ai
>ai
−aj
)注意到 sgj
,i≤o
(v
)sg_\le \mathcal(\sqrt v)
sgj,i
≤o(v
),我們令 dpj
,d
dp_dp
j,d
表示使得 sgj
,i=d
sg_=d
sgj,i
=d的最大的 i
ii我們逐一判斷 sgj
,i
sg_sg
j,i
能否為 d
dd,即 adp
i,d−
ai
>ai
−a
ja_}-a_i>a_i-a_j
adpi,d
−a
i>ai
−aj
那麼 dpj
,d
=max
dp_=\max\}-a_i\le a_i-a_j\}
dpj,d
=max
若不存在我們令 dpj
,d=−
1dp_=-1
dpj,d
=−1我們把條件看成 a
j>2×
ai
−mint
dpj, t∩aj ≤2×a i−ad pi,d a_j>2\times a_i-\min_(\sum m_i\times \sqrt v\log m) o(∑mi ×vlogm) ,莽乙個 zkw \mathcal zkw 就過了 乙個問題是空間是 o(v v) \mathcal(v\sqrt v) o(vv) 的,但你發現按 d dd 從小到大做空間就可以 o(v )o(v) o(v) 記錄幾道水題 第一題題目鏈結 題目大意 給 n和m 問1 n裡面m的倍數中個位數的和是多少.某場div3的c題.n m肯定是1 n裡面m倍數的個數.那麼這些數裡面各位數的和怎麼算呢?分析一下可以知道最多10個數後就會進入迴圈.因為0 9只有10個數嘛.可以手動先把每個數的迴圈陣列算出來.當然這是最直... 339a 把乙個由數字和加號組成的字串按照數字從小到大的順序排序 思路 把字串s中的所有 過濾掉,然後對數字排序輸出。160a 給n個物品,每件物品有乙個價值,現在要求選擇最少的物品使得你所選擇的物品價值和大於剩餘物品的價值和 思路 排序,按照價值從大到小貪心 58a 給乙個字串,判斷是否刪除若干位... cf id illlzkqf 05.09 codeforces round 640 div.4 solved 7 7 補題 7 7 05.14 codeforces round 642 div.3 solved 6 6 補題 6 6 05.16 codeforces round 643 div.2 ...cf水題記錄
CF貪心刷題記錄
2020賽季CF訓練記錄