原创 無向圖和有向圖的tarjan

// 有向圖tarjan void tarjan(int u) { int j,v; dfn[u]=low[u]=cnt++; vis[u]=1; S.push(u);

原创 hdu 3663 (dancing links)精確覆蓋

題目描述: 有n個城市,還有m條邊(雙向),每個城市都有一個發電站,如果一個發電站工作,它能夠給它所在的城市和直接相鄰的城市提供電力。並且要求每個城市只能由一個發電站來提供電力(即不能夠被兩個或以上的發電站同時覆蓋)。 然後,每個城

原创 hdu 2460(邊雙連通分量+LCA)

題意:給你一個無向連通圖,讓後給出每給q條要添加的邊,輸出添加每一條邊之後圖中還剩下多少橋 首先我們可以通過Tarjan求邊雙連通分量,對於邊(u,v),如果滿足low[v]>dfn[u],則爲橋,這樣我們就可以知道圖中橋的數目了。對於每

原创 poj 2125 二分圖最小點權覆蓋

給你一個有向圖,每個點有兩種操作,一種是刪除它的所有入邊,一種是刪除它的所有出邊,並且每個刪除都有一個花費,w- 是出邊的花費 ,w+ 是入邊的花費 ; 讓你求最小花費使得這個圖刪除所有的邊。 先看一下下面幾個定義: 點覆蓋集:是無向圖的

原创 hdu 5024 暴力枚舉

給以個n*n的矩陣地圖,‘.’ 能走,‘#’不能走,求一段最長的路 , 這條路最多隻能拐一次彎,或者不拐,一個彎是90度 ; 走的方向有8個,東,南,西,北,東南,西南.....    一條路的長度是包含的‘.’的數目 ; 先預處

原创 poj 2516 (多次費用流)

題意:有N個客戶,M個倉庫,和K種貨物。已知每個客戶需要每種貨物的數量,每個倉庫存儲每種貨物的數量,每個倉庫運輸各種貨物去各個客戶的單位費用。判斷所有的倉庫能否滿足所有客戶的需求,如果可以,求出最少的運輸總費用。 最小費用最大流。先判斷

原创 poj 1966(最小割集求頂點連通度)

題目大意:給你一個無向圖,這個圖有一個安全係數f, f的定義是: 1.f爲n,如果不管刪除多少個頂點,剩下的圖仍然是連通的 2.f爲刪除最少的頂點數,使得剩下的圖不連通 給你一個圖,求出f 解題思路:題目給出的目標很明顯,轉換成圖,那

原创 hdu 2242(邊雙聯通分量)

衆所周知,HDU的考研教室是沒有空調的,於是就苦了不少不去圖書館的考研仔們。Lele也是其中一個。而某教室旁邊又擺着兩個未裝上的空調,更是引起人們無限YY。 一個炎熱的下午,Lele照例在教室睡覺的時候,竟然做起了空調教室的美夢。 Le

原创 poj 3680 (費用流拆點+離散+神奇的構圖)

題目:給定N個區間(ai,bi)權值wi,選一些區間,求最大權和且每個點最多覆蓋K次 做法是 先把所有的區間離散化 ,也就是隻留端點,然後排序,去重,標號。 增加超級源超級匯s,t.假設剩下n個點, 加上超級源超級匯是n+2個。超級源爲0

原创 hdu 3594 (求強連通圖+判斷沒條邊是否只屬於一個環)

題目大意:給一個有向圖,問該圖是否滿足以下兩個條件:1.它是一個強連通圖。2.它的每一條邊僅屬於一個環。如果滿足輸出YES,否則輸出NO 1. 求一遍強連通分量,只要強連通數量=1 ,就是強連通圖 2. 在求強連通分量tarjan時 ,

原创 poj 3422(拆點費用流)

題意:有個方陣,每個格子裏都有一個非負數,從左上角走到右下角,每次走一步,只能往右或往下走,經過的數字拿走 每次都找可以拿到數字和最大的路徑走,走k

原创 poj 3762(費用流+區間K覆蓋)

題目大意:給你n個時間段,每個時間段都有一個權值,每個時間段只能選擇一次,其中一天時間點能選擇互不重疊的時間段,最多選擇k次。問怎樣選擇使得總權值和最大。 和上一題 poj 3680 一樣,只是數據輸入麻煩點 ;把每個時間段的左右端點拿出

原创 poj 3740 dancing links

題意: 給你一個n*m(n<=16,m<=300)的矩陣。矩陣的每個元素只能是0或1.現在問你能不能從裏面選一些列出來使的沒一列有且僅有一個1. #include<cstdio> #define INF 0x7FFFFFFF

原创 hdu 3639(強連通分量+dfs)

題目大意   有 n(2<=n<=5000) 個人,m(0<m<=30000) 個 support 關係(A support B)。問:哪些人得到的 support 最多。 需要注意的是 support 是可以傳遞的,比如:A suppo

原创 hdu 3849(雙聯通求橋)

題目意思: 給你n,m表示一個圖的n個點,m條邊。   下面m行爲  x ,y即x和y之間有條邊,求割邊,2個坑點:若圖不連通輸出0;若有多條割邊按輸入先後順序輸出,而且x,y順序也和輸入時一致    #include <cstdio