原创 POJ 3126 Prime Path 快速篩法 bfs

/* * 思路: * 素數好辦,套個快速篩法就能得到1到10000的素數情況。對於bfs,每次枚舉當前數的每一位,再枚舉這位的取值情況。 * 就是下面的兩重for。好像也沒啥說的=.=,基本都是bfs的套路。

原创 POJ 3279 Fliptile 狀態壓縮

/* * 思路: * 可以知道一個位置翻兩次就變回原樣了,所以一個位置最多翻一次。當確定了第一行是否翻轉的狀態。那麼之後的行都可以 * 推導出來。因爲要全部變爲0,那麼上一行翻轉完之後還是1的話,下一行就必須翻

原创 HDU 1069 Monkey and Banana 動態規劃 類最長下降子序列

/* * 思路: * 類似於最長下降子序列,由於可以自定義排列順序,所以肯定長和寬更大的排在前面更優,這裏採用了貪心的思想。 * dp[i]定義:以第i塊磚爲最後添加的一塊磚的最大高度。 * 分析狀

原创 HDU 1546 Idiomatic Phrases Game 最短路 SPFA

/* * 解題總結 : * 1 : 首先明確strlen, size這些函數都時O(N)的,再套兩個for,妥妥的T。 * 2 : 因爲只要用到前面的四個字符和最後的四個字符,所以先可以預處理出這些數據。 *

原创 HDU 2680 Choose the best route 最短路 多起點單終點 Dijkstra

/* * 解題總結 : * 1 : 可以把多個起點聚集到一個超級源點上,這裏用了1010這個點。 * 2 : 然後用這個超級源點跑一次最短路就行了。 */ #include <bits/stdc++.h>

原创 HDU 2680 Choose the best route 最短路 多起點單終點 SPFA

/* * 解題總結 : * 1 : 可以把多個起點聚集到一個超級源點上,這裏用了1010這個點。 * 2 : 然後用這個超級源點跑一次最短路就行了。 */ #include <bits/stdc++.h> u

原创 HDU 1546 Idiomatic Phrases Game 最短路 Dijkstra

/* * 解題總結 : * 1 : 首先明確strlen, size這些函數都時O(N)的,再套兩個for,妥妥的T。 * 2 : 因爲只要用到前面的四個字符和最後的四個字符,所以先可以預處理出這些數據。 *

原创 HDU 2923 Einbahnstrasse 最短路 Dijkstra

/* * 解題總結 : * 1 : 寫的有點複雜了,但整體還是蠻清晰的。 * 2 : 還是一個map和一個變量分配id,建圖過程複雜了點。 * 3 : 正着跑一遍最短路,然後反向建圖跑一遍最短路。

原创 HDU 2923 Einbahnstrasse 最短路 SPFA

/* * 解題總結 : * 1 : 寫的有點複雜了,但整體還是蠻清晰的。 * 2 : 還是一個map和一個變量分配id,建圖過程複雜了點。 * 3 : 正着跑一遍最短路,然後反向建圖跑一遍最短路。

原创 HDU 2923 Einbahnstrasse 最短路 Floyed

/* * 解題總結 : * 1 : 這個Floyed明顯比其他寫法簡單,在數據量小的時候還是有優勢的,不容易出錯。 * 2 : 使用一個map加一個變量分配id,基本操作了。。。 */ #include <b

原创 HDU 1317 XYZZY 最短路 Floyed SPFA

/* * 做題總結 * 1 : 一開始以爲只要判正環,就沒寫Floyed,用了鏈式前向星存的圖,懶得改了=.= * 2 : 找最長路,核心代碼要改爲大於號,且題目要求大於0。dis數組初始化爲0,dis[1]

原创 HDU 1217 Arbitrage SPFA

/* * 入隊次數大於n說明一直在轉圈圈了,也就是找到了答案了。這裏SPFA要跑n次, * 對於這題蒟蒻認爲不如Floyed寫的快,也可能沒發現好的做法把。 */ #include <bits/stdc++.h> using na

原创 HDU 1217 Arbitrage Floyed

/* * F數組定義爲從i點到j點只可以使用[1, k]中的點所獲得的最大利潤。由於都是匯率換算 * 這裏的更新操作應該是乘法運算。具體細節可以看代碼。 */ #include <bits/stdc++.h> using name

原创 HDU 1874 暢通工程續 最短路 SPFA

/* * 模板題 */ #include <bits/stdc++.h> using namespace std; const int MAXN = 2e2 + 10; const int MAXM = 2e3 + 10; cons

原创 HDU 1535 Invitation Cards 最短路 Dijkstra

/* * 解題總結 : * 1 : 可以用鏈式前向星存圖,避免爆內存。 * 2 : 需要正向跑一遍最短路,然後方向建邊再跑一遍最短路。 * 3 : 由於要跑兩遍最短路,所以初始化要特別注意。 *