【題解】PA2014 Kuglarz
阿新 • • 發佈:2021-11-04
https://www.luogu.com.cn/problem/P5994
題意
魔術師的桌子上有\(n\)個杯子排成一行,編號為\(1,2,…,n\),其中某些杯子底下藏有一個小球,如果你準確地猜出是哪些杯子,你就可以獲得獎品。
花費\(c_{i,j}\)元,魔術師就會告訴你杯子\(i,i+1,…,j\)底下藏有球的總數的奇偶性。
採取最優的詢問策略,你至少需要花費多少元,才能保證猜出哪些杯子底下藏著球?
\(n\le 2000,c_i\le 10^9\)
題解
神題
題目中可以花錢知道區間\([i,j]\)的和的奇偶性,考慮到區間\([i,j]\)的未知量太多,我們可以進行字首和轉化。
設\(s_i=\sum_{i=1}^{n}a_i\)
因為\(n\le 2000\),所以足以獲得任意\([i,j]\)的資訊,考慮對任意\([i,j]\),從\(i\)向\(j\)連權值為\(c_{i,j}\)的邊。
那麼只要計算出\(s_1,s_2,...,s_n\)的值,就可以知道答案。
由於區間資訊可以拆分與合併,所以當\(1,2,3,...,n\)全部聯通的時候,就可以獲取所有資訊。跑\(1\)到\(n\)的最小生成樹即可。
使用\(prim\)或\(kruskal\),時間複雜度為\(O(n^2)\)或\(O(n^2\ log\ n)\)。