原创 POJ1442 Black Box堆的應用

今天是第一次寫ACM的博客啦~拖了好久纔開始的說- - 話說開始接觸ACM近半年,才發掘不總結總結太凌亂了,身邊的同級的童鞋也陸陸續續開始寫了,有大牛也寫了幾十篇了,我也不能落後的太多啊 所以從今天起我也要寫啦~ 第一次寫就是寫堆- -

原创 POJ1523_SPF_求割點與分塊_tarjan算法

【PS:昨晚跟主任討論的時候才發現自己的代碼錯了= =沒想到錯誤的代碼也能A,只能說明這道題的數據太弱= =爲了警示自己,把錯誤的代碼也留下來,附在最後面】 題意: 給一個無向圖,求其中的割點,並求當此割點刪掉後圖中形成多少個連通分量

原创 UVA11997_K_Smallest_Sums_多路並歸_優先隊列

本來今天早上才編過用優先隊列模擬堆的一道題,結果晚上編又不會了- -,還得照着模版寫- - 另外這個題我自己沒想出來,去網上搜的解題報告看的 題意是給k組數每組有k個數,然後每組取一個,找前k個最小的和 然後下面是我在別人的博客裏搜到的題

原创 POJ1511_Invitation_Cards_SPFA算法求最短路

這道題寫了我整整一天- -...... /* 吐槽: 也怪我自己效率低。剛開始看這道題說要求來回的最短路徑和,覺得用Dijkstra(其實第一反應是最小生成樹,但是發現來回的權值不一樣- -),但是看數據規模就嚇到了,100萬個點,雖然有

原创 POJ2185_Milking Grid_KMP_二維求最小覆蓋子矩陣

【不能用最小公倍數或最大值求覆蓋子矩陣的寬和高!!】 昨天看了很久這個題,去POJ 的論壇上,看到幾個分析說網上大多數的AC代碼都是錯的,只是POJ上的數據過於弱就過了,比如求行方向上最小覆蓋的列數(寬度)只要用到求最小公倍數的就都是錯

原创 POJ1050_To the Max_求最大子矩陣_DP

/* 吐槽: 唔。。。從早上就開始看這個題了- -又荒廢了一天。 早上睡覺到十點半,然後就開了個會到12點,回來睡覺到4點多起來看B站,看樓教主的回憶錄,跟看小說似的 到晚上纔開始編 又是自己想了想覺得暴力不行就去搜代碼了 - -不解釋了

原创 POJ3159_Candies_差分約束_SPFA

/* 吐槽 這道題又是自己沒好好想就去網上查題解去了- -發現是一道差分約束的題,以前沒聽說過這個啊-  -沒辦法就去百科了一下什麼是差分約束,發現是轉化成最短路徑來解。 然後看題解上說都是最短路徑,自己以爲是最長路,很是鬱悶- -後來自

原创 POJ3177_Redundant_Paths_邊雙連通分量_tarjan

題意: 給一個圖,問你最少添加多少條邊可以成爲一個雙連通圖(就是去掉任何一條邊後圖仍然連通) 題解:【摘自北大的集訓課件】 只需在求出所有的橋以後,把橋邊刪除,原圖變成了多個連通塊,則每個連通塊就是一個邊雙連通分支。橋不屬於任何一個邊雙連

原创 POJ2406_Power Strings_KMP_求最短重複子序列

這道題跟POJ1961非常像,比那道還簡單些,只需要求整個串就行,而1961需要求所有長度的。 題意是: 給一個串,求該串可以最多被一個子串重複多少次形成 比如abcabcabcabc,ans=4 方法不解釋了,看看1961就行,還比那

原创 POJ2560_Freckles_最小生成樹

- -剛開始我看輸入把我下了一跳,平面上n個點怎麼遍歷啊。後來才發現自己二到忘記看規模了,n<100,直接枚舉就可以啊...... 然後就是裸的最小生成樹的Kruskal算法 悲催的是自己連這個都沒有一遍過對自己的水平無語了 - -好了吐

原创 POJ2186_Popular cows_強連通分量_Korasaju算法

題意: 給一個有向圖,找一些點,使得從所有點出發都可以到達這些點 題解: 定理:有向無環圖中唯一出度爲0的點,一定可以由任何點出發均可達(由於無環,所以從任何點出發往前走,必然終止於一個出度爲0的點) 1. 求出所有強連通分量 2. 每個

原创 POJ1236_Network of Schools_強連通分量_Korasaju算法

題意: 給一個有向圖,task_A:選最少的點使之可以遍歷整個圖 task_B:添加最少的邊使圖成爲強連通圖 題解: A:     有向無環圖中所有入度不爲0的點,一定可以由某個入度爲0的點出發可達。(由於無環,所以從任何入度不爲0的點

原创 POJ1961_Peroid_KMP_求最多的子串重複次數

/* 吐槽君又來吐槽了,額= =這就是我兩天來學習KMP的成果,水了一道水題,還是照着模版,看着題解寫的=i=唯一的成就就是我植物大戰殭屍的水平又更上一層樓,對自己無語了,暑假集訓儼然要過半了,自己期待的蛻變卻越來越遠,希望明天能有新變化

原创 POJ3461_Oulipo_KMP_求重複子串的個數_可重疊

題意: 給母串str,和子串w,求在str中最多有幾個w,w可以相互重疊 比如 str:ABABABA w:ABA ans=3 題解: 裸的KMP算法,只是這時候不是返回子串的位置,而是重複KMP遍歷完整個串求個數 原題: Ouli

原创 HDU4003_Find_Metal_Mineral_樹形DP分組

額- -其實也是看的別人的題解才做出來的,不過自己完完整整的寫了一遍加詳盡註釋,感覺理解的透徹了些,又給同級的同學們講了一遍,總之收穫還是蠻大的。 寫的代碼是交的一道DIY的改編題,裏面數據被肖神變態加強了,但是時間還是跟原題一樣(T_T