Codeforces Gym 100002 (NEERC 2002) 簡要題解

提交鏈接(Codeforces::Gym)
參考代碼

前排提醒:本場比賽在 Codeforces::Gym 裏是用的文件 IO。

A. Amusing Numbers

容易發現在 KK 確定的情況下 QN,KQ_{N, K} 的值單調不減,於是二分答案即可。
稍微腦補一下發現答案的一定小於 T=1018T= 10^{18}
每次求 QN,KQ_{N, K} 的時候記一下當前串是否爲 NNMM 的前綴,直接搜就行了。
時間複雜度:O(log2T)O(\log^2T)

B. Bricks

顯然我們只需要取磚塊面積最小的那個面嘗試塞進去。
一種做法是枚舉旋轉角度,由對稱性可知枚舉 [0,π2]\left[0, \frac{\pi} {2}\right] 即可。時間複雜度爲 O(π2S)O\left(\frac{\pi}{2S}\right),其中 SS 爲枚舉步長。
另一種做法是稍微觀察一下單調性,找到旋轉過程中長或寬的極值點,直接 O(1)O(1) 判斷。
實際比賽中考慮到時間關係建議使用第一種方法。參考代碼中給出的是第二種方法。

C. Cricket Field

枚舉選出的正方形的左右界,顯然只需要在有樹的豎線中枚舉,之後對中間的所有點求縱座標差的最大值。數據範圍很小隨便暴力都能過。
時間複雜度:O(n3)O(n^3)

D. Decoding Task

按題意模擬。

E. Evacuation Plan

費用流模板。

F. Folding

區間 DP,中間順便處理一下循環串摺疊的情況即可。
時間複雜度:O(n3)O(n^3)

G. Ghost Busters

顯然有用的射線只有指向所有球心的以及兩兩球的內公切線。枚舉即可。
第二種情況的公式推導需要一定的空間想象力和一定的幾何與三角恆等變換功底。
注意兩兩球的公切線不一定在兩球心以及座標原點確定的平面內。
簡單說一下第二種情況的推導過程:
不妨設兩個球的球心分別爲 A,BA, B,所求的公切線爲 OPOP,其在平面 OABOAB 上的投影爲 OQOQ
寫兩邊三垂線定理可以解出 OPOPOQOQ 的夾角。
下面需要求出 OQOQOA,OBOA, OB 方向上投影的長度。這個可以由正弦定理和平行四邊形定則推出來。具體的結論看代碼。
時間複雜度:O(n+n2)=O(n2)O(n + n^2) = O(n^2)

H. Heroes Of Might And Magic

總狀態數不超過 50×10×10×10×100=500000050 \times 10 \times 10 \times 10 \times 100 = 5000000,每個狀態的決策數不超過 1212,直接爆搜即可。

I. Inlay Cutters

顯然每個點的度數不超過 88,暴力建圖然後暴力數三元環即可。
時間複雜度:O(k3)O(k^3)

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