index > 牛客多校第三場
概覽
題目 | 做法 | 狀態 |
---|---|---|
Graph Games | ||
Crazy Binary String | 簽到 | √+ |
Guessing ETT | ||
Big Integer | ||
Trees in the Pocket II | ||
Planting Trees | 矩陣模型+單調隊列 | ○ |
Removing Stones | ||
Magic Line | 平面幾何 | √-○ |
Median | ||
LRU management |
○
代表賽後補題√+
代表賽內我通過的√-
代表賽內不是我做的√-○
代表賽內不是我做的,補了
Logs
其實我感覺這場能三題的,但是H題花了太多時間去二分了,沒有想到最簡單的辦法,然後感謝tc2000731耐心地教我單調隊列。
B - Crazy Binary String
輸出一個01串最長的01數相等的,子串長度,和子序列長度。
水題wa了一發有點可惜。輸出一個儘量長的01子串這個讓我們考慮了一下,其實也是要點想法的。可以令對串做一個前綴和,兩個位置的前綴和相等,說明某個區間的01相等,記錄第一個左邊界,向右更新最大長度就可以了。另外就是前綴和是0說明整個前綴01相等。
H - Magic Line
題意是求一個直線劃分平面上n個點,使得直線兩邊點數相等,且不能穿過點。輸出兩個直線上的整數點,並且範圍在1e9之內。
只要按照x第一關鍵字,y第二關鍵字排序,第的點就是劃分的關鍵。只要取一個接近垂直,但是把前點包含進去的就可以了。
虧我們三個人輪流二分了那麼久ORZ
我的答案就是下面這樣的,.
cout << p[half].x - 1 << " "
<< p[half].y + Tmp << " "
<< p[half].x + 1 << " "
<< p[half].y - Tmp + 1 << "\n";
F - Planting Trees
首先是一個子矩陣問題,然後是需要一點想法來處理一維數組的區間最大差值。用的是單調隊列。