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