做題記錄 BJOI2016 水晶

2022-09-18 15:18:09 字數 1235 閱讀 7757

乙個六邊形網格的座標用 \((x,y,z)\) 來描述乙個單元的位置,表示從原點開始按如圖所示的 \(x,y,z\) 方向各走若干步之後到達的地方。

已知有 \(n\) 個水晶,並給出座標與價值。

定義能量源為滿足座標 \((x+y+z)\equiv0 \pmod3\),若其上面有水晶,則價值加上 \(10\%\)。

炸掉一些水晶,使得:

沒有 \(a\) 共振:如果三塊水晶所在的單元兩兩相鄰地排成乙個三角形,那麼會引起 \(a\) 共振。

沒有 \(b\) 共振:如果三塊水晶所在的單元依次相鄰地排成一條長度為 \(2\) 的直線段,且正中間的單元恰好有能量源,那麼會引起 \(b\) 共振。

求剩下水晶最大價值。

\(n\le 5\times 10^4\)。

考慮對於乙個能量源 \((x,y,z)\),將它的周圍六個點分成兩類:

黑色:\((x-1,y,z),(x,y-1,z),(x,y,z-1)\)

白色:\((x,y,z+1),(x,y+1,z),(x+1,y,z)\)

那麼,有乙個重要性質:

若選擇了能量點,則黑色白色不能同時出現。

考慮證明。(圖中的紫色是白、藍色是黑,紅色表示選擇的水晶)

黑白相鄰

如圖,形成了 \(a\) 共振。

黑白不相鄰

形成了\(b\) 共振。

所以考慮把 \(\bmod 3\) 意義下的三種點分別拆點。

將乙個點拆成兩個,中間一條邊表示選或者不選,三類順次連長度為inf的邊,跑最小割即可。

然後源點連 \(1\) 的點,\(1\) 連 \(0\),\(0\) 連 \(2\),\(2\) 連 匯點,答案為水晶的總能量減最大流。

這樣就保證了黑白不相鄰。

和王者之劍非常像。

BJOI2016 迴轉壽司

題目鏈結 給定乙個長度為 n 的序列 a 和乙個區間 l,r 求多少連續子串行的權值和在區間內,即滿足 1 le i le j le n 且滿足 l le sum a i le r 的方案數。區間和,很容易想到用字首和轉換,這樣區間相關變成了兩個點。設 s 為 a 的字首和,那麼統計就變成了這樣。統...

BJOI2016 迴轉壽司

似乎沒有人打平衡樹的題解,那我就來水一發 我們將題目做乙個簡單的轉化 設 sum i sum a j 那麼答案就是 sum sum l leq sum i sum leq r 我們可以利用容斥的思想進行簡單是轉化 sum sum l leq sum i sum sum sum r sum i sum...

BJOI2016 迴轉壽司 題解

傳送門qaq 給定乙個長度為 n 的序列 a 給定邊界 l 和 r 求出滿足 l le sum limits r a i le r 的 l,r 的數量。簽到題,感覺紫題太高看它了,真實難度頂多綠題。考慮列舉 r 計算出所有滿足題意的 l 的數量。設 s 為 a 的字首和陣列,若 l le s r s...