今天終於a完了25道題,包括dfs,bfs以及圖論演算法和拓撲排序;
其中拓撲排序這個題
輸入n和m,n表示26個字母前n個字母,m表示有多少個關係,然後輸入m個關係,判斷是否這n個字母存在乙個排序關係
如果存在輸出在幾個關係之後就輸出幾個關係之後就可以確定,比如第乙個測試資料,前四個關係輸入之後,就輸出結果
後兩個關係輸入不用管,,如果存在環那麼就輸出衝突,如果不能確定次序就輸出不能確定。
考察了拓撲排序的基本思想:每一步尋找乙個入度為0的結點,然後刪除之。將這個結點指向的結點入度減1。刪除從這個結點出發的所有邊
同時考察了對於乙個有向圖是否有環、是否嚴格有序的判斷。(當發現多個結點的度為0時,則不是嚴格有序。當發現沒有結點入度為0時,則有環)
需要注意的是邏輯上的關係。「sorted sequence cannot be determined.」這個判斷,要放在最後,即只有發現了所有的點都沒有環,且並沒有發現嚴格有序性質的時候,才可以判為「sorted sequence cannot be determined."
邏輯上的判決一定要注意優先順序。
這個問題中優先順序最高的是判斷有環。一旦發現找不到度為0的結點,則立即return。
第二優先順序是是否嚴格有序的判斷。當每一步能且只能找到乙個度為0的結點,則return。
第三優先順序是無法確定。(當發現無法確定時,並不能立即return,因為還需要判斷是否有環)
思維方式:當條件x成立時,另外的條件y,z是否一定不成立。如果一定不成立,則可以斷言return。否則必須繼續判斷下去
//ac**見大佬部落格
再有就是看了單調佇列
單調佇列,就是乙個符合單調性質的佇列,它同時具有單調的性質以及佇列的性質。
他在程式設計中使用頻率不高,但卻占有至關重要的地位。
它的作用很簡單,就是為了維護一組單調資料,讓我們在執行的過程中能夠快速尋求前k個或後k個中最大或最小的值。
//包括單調佇列的應用
//再結合課件
課件上給的例題很多,一下午光看例題了。
訓練日記 20161024
初賽好像不會掛了,好開心!版權原因,不上傳題目。題意 求1 n n 1000 的排列中逆序對恰好為 k 個的排列數目。多測。題解 f i j 表示前 i 個數,逆序對個數恰好為 j的排列個數,易得轉移方程f i j i 1k 0f i 1 j k 用字首和優化可使複雜度降為o n2 題意 對於乙個長...
訓練日記 20170324
長久不更新部落格了。期間經歷了恰好被ag線踩的wc,經歷了漫長痛苦的小高考準備。現在終於可以重整旗鼓,向省選進發!幾個月來,唯一不變的是我仍然是個超級蒟蒻 版權原因,不上傳題目。題意 最小樹形圖 去年就接觸 聽說 過的演算法,一直沒有真正寫過。因為各種奇怪的細節錯誤,調了好幾個小時 比如找環時沒有判...
訓練日記 20170328
今天的題目似乎很水 好多人都提前ak離場了,於是提前一小時收題。但是我還是各種不會。思維江化?話說,聽到一句很有趣的話 山不在高,有林則徐 水不在深,有江 題意 給定一棵有n n 105 個節點的有根樹,編號互不重複。詢問有多少棵子樹內節點編號構成乙個連續區間。題解 水題,對於每個節點 i 記錄以該...