2019.7.25 牛客多校第三場

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子串這個讓我們考慮了一下,其實也是要點想法的。可以令0=10=-1對串做一個前綴和,兩個位置的前綴和相等,說明某個區間的01相等,記錄第一個左邊界,向右更新最大長度就可以了。另外就是前綴和是0說明整個前綴01相等。

H - Magic Line

題意是求一個直線劃分平面上n個點,使得直線兩邊點數相等,且不能穿過點。輸出兩個直線上的整數點,並且範圍在1e9之內。

只要按照x第一關鍵字,y第二關鍵字排序,第n/2n/2的點就是劃分的關鍵。只要取一個接近垂直,但是把前n/2n/2點包含進去的就可以了。

虧我們三個人輪流二分了那麼久ORZ

我的答案就是下面這樣的,tmp=1e8tmp=1e8.

cout << p[half].x - 1 << " "
     << p[half].y + Tmp << " "
		 << p[half].x + 1 << " "
	   << p[half].y - Tmp + 1 << "\n";

F - Planting Trees

首先是一個子矩陣問題,然後是需要一點想法來處理一維數組的區間最大差值。用的是單調隊列。

我的題解:牛客883F - Planting Trees 單調隊列雙指針

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章