原创 hdu 1827 Summer Holiday (強連通Kosaraju法)

題意: 輸入n、m ,n表示人數和聯繫對數。聯繫不同人的花費不同,需要找到花費最少爲多少。 思路:找到強連通分支(標記同一分支中的點),然後每個分支中最多隻需要聯繫一個人即可,但若兩個分支中有聯繫則只需聯繫其中一個花費小的,即將每個分支看

原创 hdu 2147 kiki's game(基礎博弈)

定義: 必勝點(N點):下一個選手將取勝的點(將物品取完)。 必敗點(P點):前一個選手取勝的點(此時物品已經取完,或後面某次輪到當前選手時物品已經取完)。 屬性: 1 、必勝點N點,一定有某種方法到達必敗點P點。 2、必敗點P點,無論通

原创 hdu 1527 升級 2177(威佐夫博奕)

理論:(來自:http://www.wutianqi.com/?p=1081) 威佐夫博奕(Wythoff Game):有兩堆各若干個物品,兩個人輪流從某一堆或同 時從兩堆中取同樣多的物品,規定每次至少取一個,多者不限,最後取

原创 Tarjan 算法

[有向圖強連通分量] 在有向圖G中,如果兩個頂點間至少存在一條路徑,稱兩個頂點強連通(strongly connected)。如果有向圖G的每兩個頂點都強連通,稱G是一個強連通圖。非強連通圖有向圖的極大強連通子圖,稱爲強連通分量(st

原创 ccsu 1179 青蛙過河 遞推

題目: 有一條河,左邊一個石墩(A區)上有編號爲1,2,3,4,…,n的n只青蛙,河中有k個荷葉(C區),還有h個石墩(D區),右邊有一個石墩(B區),如下圖2—5所示。  n只青蛙要過河(從左岸石墩A到右岸石墩B),規則爲:  1

原创 poj 2186 Popular Cows (tarjan + 縮點)

題意 :n頭奶牛,m組關係(a b代表a認爲b受歡迎)。求最後有多少頭奶牛所有奶牛都認爲它受歡迎。 思路:首先用tarjan算出連通分支數,將所有點都標上所屬連通分支color。將每個分支看做一個點,若某點a受到另一點b聯繫,則說明該點a

原创 hdu 1811Rank of Tetris (並查集+拓撲排序)

題意: n個隊,m種描述(a>b 或 a=b 或 a<b),判斷描述中的比分是否出現衝突(①:a=b與a<b或b>a同時存在;②:存在環),信息是否不齊全(排名順序有多種可能:某次入度爲0的>1個。) 思路: 由於當存在衝突和信息不全時,

原创 hdu 2647 Reward 拓撲排序

#include<iostream> #include<string.h> #include<queue> #define size 10010 using namespace std; int n,m ,top ,ans; struct

原创 poj 1523 SPF (無向圖 求割項)

題意: 求有多少個割項,且每個割項被幾個塊所共有。 代碼: #include<iostream> #include<string.h> #include<vector> #define mm 1010 using namespace st

原创 hdu 1850 Being a Good Boy in Spring Festival(尼姆博弈加強)

題意:  最後取完的選手勝利,與1907剛好相反。並輸出若勝利,則第一步有多少種取的方式。 綜上所述,若是    S2,S1,T0 。 則先下的人必輸。                      若是   T2,S0 。則先下的人必勝。

原创 hdu 1827 Summer Holiday (Tarjan算法)

#include<iostream> #include<string.h> using namespace std; int stack[1010],top ,size, step ,color; int in[1010],dfn[10

原创 hdu 3394 (無向圖求塊 判斷環)

題意描述: 公園有n個景點,公園的管理員計劃要建m條道路,並且安排一些形成迴路的參觀路徑,如果一條道路可以被多條迴路共用, 那麼這條邊是衝突邊,如果一個塊中有多個環,則該塊

原创 coj 1504 放置棋子(諸侯安置)dp

很久以前,有一個強大的帝國,它的國土成正方形狀,如圖2—2所示。  這個國家有若干諸侯。由於這些諸侯都曾立下赫赫戰功,國王準備給他們每人一塊封地(正方形中的一格)。但是,這些諸侯又非常好戰,當兩個諸侯位於同一行或同一列時,他們就會開戰

原创 hdu 2767 Proving Equivalences (tarjan + 縮點)

/* 題目大意:給定一張有向圖,問最少添加幾條邊使得有向圖成爲一個強連通圖。 解題思路:縮點後找入度爲0的點和出度爲0的點,統計個數,選擇大的那個數就是答案。 如果出度爲0的個數n比入度爲0的個數m多,那添加n條邊,

原创 coj 1509 Build the given towers

題意:給定一個左視圖,要求給定的方塊數能否壘成這麼一個視圖。方塊數不要求全部用完。壘數不能超過W。   解答:此題我們採用貪心解決。由於W有限,如果沒有黑色的‘b’,我們是可以只用一壘就擺出給定的視圖。貪最少的壘,只有到出現奇數個連續的‘