CF538H Summer Dichotomy 題解

SkyMaths發表於2024-09-21

自己做的 \ ^ w ^ /。

對於 \(m\) 個限制,我們得到了一個圖,若不是二分圖則無解,否則對於每個連通塊有 \([l_1, r_1], [l_2, r_2]\) 的限制,表示對於兩組的人數限制(注意此處 \(1, 2\) 並不代表組 \(1\)\(2\))。

不妨令 \(n_1\ge n_2, (r_1 > r_2 \operatorname{or} r_1 == r_2 \operatorname{and} l_1 < l_2)\),則對於 \(l_1\ge l_2\),必定是 \([l_1, r_1]\) 限制 \(n_1\)\([l_2, r_2]\) 限制 \(n_2\)

對於 \(l_1 < l_2\),兩者是包含關係,可能是以下兩種之一:

  1. \(n_1\in [l_1, r_1], n_2\in [l_2, r_2]\)
  2. \(n_1\in [l_2, r_2], n_2\in [l_1, r_1]\)

因為 \(n_1\ge n_2\) 所以:

  1. \(n_1\in [l_2, r_1], n_2\in [l_2, r_2]\)
  2. \(n_1\in [l_2, r_2], n_2\in [l_1, l_2)\)

在二維平面上考慮限制,對於區間 1 與區間 2 不包含的是一個矩形,對於包含的是一個矩形挖掉右下角。

可以先求矩形的交,再挖掉右下角。

對於 \(t\le n_1 + n_2\le T\),是兩條 \(y = -x + b\) 的斜線,若矩形內有在兩者中的,矩形的左/上邊界必有其中的,而挖掉右下角對左/上邊界影響最小,對於挖掉的維護矩形的左/上邊界即可。

時間複雜度 \(\mathcal O(n)\)

二分圖染色的內容實現的不是很好。

code

相關文章