- 做題筆記 II
- 做題筆記 III
發現做題筆記屢次停更的根本原因是做的無聊題太多,不想更筆記,拖的時間長了筆記就更新不過來了。
從這篇筆記開始只記錄精彩巧妙的題。
\(1 \sim 25\)
\(\color{blue}(1)\) CF1270G Subset with Zero Sum
\(^*2700\);構造;圖論;基環樹
給定長度為 \(n \; (1 \le n \le 10^6)\) 的序列 \(a_1,a_2,\ldots,a_n \color{blue} \; (i - n \le a_i \le i - 1)\),找出一個子集使得其和為 \(0\)。可以證明有解。
神題。
考慮化簡不等式得到 \(1 \le i - a_i \le n\),如果把 \(i\) 向 \(to_i = i - a_i\) 連邊可以得到一棵內向基環森林。
注意到環上的點滿足 \(\sum i = \sum to_i\),也即 \(\sum i = \sum i - a_i\),去掉 \(\sum i\) 後得到 \(\sum a_i = 0\),滿足題目要求。時間複雜度線性。