這次上午主要是熟悉環境,順便講解了週四的選拔賽的題目的方法,發現好多是BRUTE FORCE,但自己沒有寫出來!
其次就是看到了老隊員,像楊騫,雖然要備戰考研,還是來了,這感情~
原來上週糾結的一道Radar的題目要用Dancing Links去解決俗稱DLX,努力去攻克這個算法。
下午的任務竟然是重做週四的題目……雖然有點不情願,但增加編程的熟練度嘛,還是做啦!
很糾結的是拿到Devil May Cry,弄了半天,發現數據有問題。。。。其次組隊那道題目卻用搜索,並查集可以優化,但不是主流,很好,能把8個題目在下午的時間裏AC掉,也算是一個小小的進步,否創有些題目可能就過去了,成爲遺憾了!
A題是一個拓撲排序,沒有人被監視的可以攻擊,相當於入讀爲0的點可以去掉;
B題是一個字符串匹配,儘量選擇靠前的匹配,只要維護兩個指針就可以了;
C題是比較好的題目,有3N個人(N<=4),給出希望與不願的關係,問是否存在組隊成功(滿足所有人的要求)的方案
太容易想到並查集了,人數多餘3人可以判斷,但對於“不願”的情況就難以判斷了;
鑑於數據量不大,可以用BRUTE FORCE,效率是O(N^(3N)),由於題目數據比較弱,“意願”比較少,如果多了,樸素的方法估計就不行了!
D題屬於變種的BFS:地塊會週期性地出現、消失,求出從左下角到右上角的最少時間;
題目中的描述比較長,所以要訓練頑強的讀題能力;剛開始沒有讀懂題目,但是根據題目中的數據推測了行走的方式,結果證明是對的(雖然歷經波折~~~)。
這道題目的思想還是很好的:
1)建圖:根據週期性,最多有T張圖,所以預先處理出這T張圖,如果時間超出了T,那麼只要對T取模即可;
2)判重:由於同一幅圖中走過的點不可能再走,所以走過就可以把該點取消掉;
E題判斷前綴後綴,有常量字符串處理會簡單,但要注意處理完前綴後,要及時清除;
週四過了的,今天竟然沒過~~發現是一個BOOL變量初值錯了;
F題當時想着用隨機,後來也是BRUTE FORCE
大意:有N(<=6)個獵人和M(<=8)個財產,不同財產對不同人的價值不一樣,求出把這M個財產分完後獵人中得到的價值的極差。
由於1個物品只能由1個歸屬人,而一個獵人有可能有多個物品,所以在DFS時以物品爲階段。
G題是簡單的高精度乘方;
H題是錯排;
總體感覺不是太難,沒有太難的算法,只要練習熟練度和CODING ABILITY