A.兩種view,對應如果有相同的同時消去并加入一次計數,如果2個view不相同的則都加入計數。(topsky ac)
B.BFS,如果TLE則雙向廣搜,難點可能在于判重,試試tire樹。(topsky)
C.模擬題,用一個struct{int dt,int t},開兩個隊列,每次比較兩個隊列頭元素的時間,取時間小的,并將對應隊列中余下的元素中時間小于頭元素時間的元素取出,并將這些元素的時間修改為頭元素的時間,把取出來的元素按照游完一圈所需時間排序后,進入另一個隊列,為了方便還可以用一個堆,直到模擬到結束。(topsky ac)
D.經典題,有紅藍點集,問是否存在一條直線將其劃分,做法先求凸包,然后判相交。(haozi)
E.模擬,維護面集和鉸鏈集.(ac by haozi)
F.給你一個化學方程式,將他配平。最后的系數保證在int范圍內,且為正整數。涉及到表達式運算,和高斯消元。由于結果要是整數。我們可以在消元的每一步都保持系數是整數,這樣最后結果就是整數。具體說就是兩行相消的時候乘回一個系數,再約掉最大公約數。(haozi ac by lwc)
G.想二分一個圓的半徑,然后確定另外兩個圓的位置,判斷這兩個圓是相交,還是想離。
ps. lwc topsky幫我在網上搜幾個更好的解法,我搜不到了(haozi)
H.集合DP,考慮某個狀態a1, a2, .. ak考慮過了,并且標明其屬性(yes / no),其他未考慮,這個狀態最壞還需要問幾次。轉移就是在做一次提問,轉移到下一個狀態,邊界就是當某一個狀態的人數不超過1時,標明還需問0次。(haozi ac by lwc)
I.搜索加模擬,暫沒想法.(topsky)
J. bfs,用一個數字2^25*25來記錄當前狀態,25位壓縮表示某一位上是否有'#',25表示當前
'@'在哪一位上。可以先處理出和某位相鄰的位置為哪些來加速,map來判重,hash效果基本相同,現在2.7s.(topsky ac)