原创 歐拉回路的判定 poj 1300

這個題卡了一上午卡到心態爆炸,卡到欲仙欲死。各種bug蜜汁出現。一邊一遍的調試,忽然發現思考成熟是多麼的重要!最後是一個短路效應的問題,懷疑人生! 這個題就是統計出度和入度,就是建圖有點麻煩,其實也不算太麻煩了。對於無向圖而言就是

原创 poj 2570 Fiber Network floyd 傳遞閉包與二進制壓縮

題意就是每個段光纜被一些公司掌握,詢問所給定的一段上的光纜所有可以掌握它的公司,如果有字典序輸出,沒有的話輸出‘-’。 思路: 看完題意不難想到就是個傳遞閉包將所有點對路徑上的公共字符找出來,如果是處理字符串有點麻煩,就引出了

原创 dijkstra算法

今天看了dijkstra算法,先來說一下核心的東西,首先他是用於邊權全是正值的圖中,類似於prim利用貪心思想來尋找最短路,利用的原理是;一條最短路的子路也是最短路的思想。每次將找到的新點進行鬆弛。 #include<cstdio

原创 剪枝 之 奇偶剪枝 zoj 2110

今天學了下剪枝,簡單來說一下剪枝是什麼,在深搜過程中,如果標記其點,會生成一顆搜索樹,但是有一些“枝”是無效的,所以可將其“剪去”。 奇偶剪枝 轉載自 http://blog.csdn.net/chyshnu/article/d

原创 給定區間整數分解 by kuangbin模板

#include<cstdio> #include<iostream> using namespace std; typedef long long LL; const int MAXN = 1e4; int prime[MAXN

原创 poj 1014 多重揹包

就是判斷彈珠是否可以平分,一開始想到了揹包模型。一開始轉畫成了01揹包。wa了。那是就一直在糾結物品的cost是什麼,假設成了1,後來一直不對,看了題解他們將cost 設定等於就是將cost等同於weight.就是在尋找也可以轉化

原创 zoj 2770 Burn the Linked Camp(火燒連營) 差分約束

今天學了一個東西叫差分約束,簡單來說就是用最短路知識的三角不等式來解多元不等式組。假設 Xv - Xu <= e 可利用最短路的三角不等式將這個不等式轉化爲圖中的一條邊,這條單向邊是以u爲起點,V爲終點,權值爲e。若將不等式組中的

原创 hdu 1242 Rescue

bfs的拓展應用就是搜索無論是形式,關鍵在於狀態的轉移,和動態規劃一樣,如何劃分狀態是解決問題的關鍵。 這個題是尋求最少的時間,由於有坑點r可能有多個,就要反向搜索,將a點作爲起點進行搜索,再將r點的座標記錄,利用動態規劃的思想

原创 有向圖的歐拉回路判定問題 poj1386

這個題也卡卡卡,發現自己好粗心,唉.。 有向圖的判定: 統計每個點的出度和入度, 前提是有向圖是連通圖。 1. 如果每個點的出度 = 入度 則存在歐拉回路。 2. 如果有且僅有兩點出度、入度不想等,且這兩個點的出度 -

原创 poj1135 Domino Effect

這個區域賽的題好難理解,題意是找最後多米諾骨牌什麼時候倒下,以及倒下的位置。 思路是這樣的因爲救有兩種倒下的情況,一是在關鍵牌處,一是在普通牌處,如果是在關鍵牌處那樣的話就是一個到每個關鍵牌的最短路徑中最大值問題,如果是普通牌處

原创 poj 1556 The Doors

這個題複雜在建圖比較難,就是要考慮牆阻礙路徑怎麼判斷?還有就是牆上數據的儲存。都是很經典的方法。 對於兩點之間是否有路徑的判斷,就是判斷兩點之間是否有牆,對牆進行判斷,因爲兩點之間可能有很多牆,所以要記錄牆的位置,對於是否阻擋的

原创 1.1.3 Friday the Thirteenth 黑色星期五

#include<cstdio> #include<iostream> #include<cstring> using namespace std; int a[10]; int time1[18] = {0,31,28,31,3

原创 重拾舊山河之快速排序

void quick_sort(int l,int r) {     int k = a[l];     if(l < r)     {         int i = l, j = r;         while(i < j)  

原创 收拾舊山河之歸併排序

模板 #include<cstdio> #include<iostream> using namespace std; const int MAXN = 100; int a[MAXN]; void Merge(int left,in

原创 hdu5976 Detachment思維數學(貪心+逆元)

這個題,比賽的時候分析出來了,但是最後時間不夠了,就沒有做出來,GG了,最後補題的時候有因爲自己地粗心開始不斷debug,不過也發現問題了。 先來說一下思路,將這個數分解後使其乘積最大,且因子各不相同,我就想到了階乘,但是一個數不一定