原创 求樹的直徑

樹的直徑,即樹上的最長路徑,顯然,樹的直徑可以有很多條(考慮一棵菊花)。 接下來我們考慮如何求出一棵樹的直徑。有很多種O(n)的算法。 算法1:我們任取樹中的一個節點x,找出距離它最遠的點y,那麼點y就是這棵樹中一條直徑的一個端點。

原创 POJ1655 樹的重心

#include<iostream> #include<cstdio> #include<vector> using namespace std; const int maxn=50000+5,inf=100000000; int s

原创 數據結構之棧的使用

數據結構之棧的使用數制轉換括號匹配檢驗後綴表達式表達式求值 & 中綴表達式轉後綴表達式遞歸 & 深度優先搜索STL棧主要有以下幾種基本操作: 由於棧結構具有後進先出的固有特性,致使棧稱爲程序設計中的有用工具。 數制轉換 括號匹配檢驗

原创 信息學競賽中的各種低級錯誤,持續更新中~~~,各位同學來跟帖!!

這裏徵集各種低級錯誤,以便時刻提醒大家不要再犯! 1、寫錯文件名,包括程序文件名,輸入輸出文件名,還包括大小寫出錯。 2、沒有去掉調試信息,或者調試時註釋掉文件輸入輸出沒有去掉,或者加了system("pause"); 3、輸出格式錯誤,

原创 C++STL系列 結構體運算符重載及優先隊列的使用

#include<bits/stdc++.h> using namespace std; struct node{ int x,y; bool operator <(const node b)const{ return this-

原创 POJ 1463 TREE DP

#include<iostream> #include<cstdio> #include<cstring> const int maxn=6000+10; using namespace std; int to[maxn],beg[max

原创 POJ-3660-Cow Contest FLOYD傳遞閉包

題目大意是說:給出牛之間的強弱關係,讓你確定有多少頭牛能夠確定其排名。 用Floyd做,對每給的一個勝負關係連一條邊,最後跑一次Floyd,然後判斷一頭牛所確定的關係是否是n-1次,若是,則這頭牛的排名可以確定 #include<iost

原创 POJ2186 Popular Cows Kosaraju

題目大意是:在一個牧羣中,有N個奶牛,給定M對關係(A,B)表示A仰慕B,而且仰慕關係有傳遞性,問被所有奶牛(除了自己)仰慕的奶牛個數 因爲仰慕關係具有傳遞性,因此在一個強連通分量中,每個奶牛都被分量中的

原创 單元最短路模板 dijistra

#include<iostream> #include<cstdio> #include<cstring> #include<vector> const int maxn=10000+10,inf=1000000000; using na

原创 spfa+vector

#include<iostream> #include<cstdio> #include<vector> #include<map> #include<cmath> #include<cstring> #include<algorithm

原创 USACO FC,二維凸包

#include<iostream> #include<cstdio> #include<cmath> #include<algorithm> const int maxn=10000+10; using namespace std; s

原创 USACO RECT1 離散化處理

#include<iostream> #include<cstdio> #include<cstring> const int maxn=2002,maxm=10000+1; using namespace std; struct nod

原创 HDU1166樹狀數組

#include<iostream> #include<cstdio> #include<cstring> const int maxn=50000+10; using namespace std; int c[maxn],n; int

原创 POJ 2342 Anniversary party ~~Tree Dp

/* 【題意】 公司有n個人,每個人有價值vi,有一天舉辦年會,每個人都可以參加,但有嚴格的等級制度,參加活動時,不能同時出現a和a的上司,問如何才能使總和最大。 【分析】 每個人只有去和不去兩種狀態,設f[i][0]和f[i][1]分別

原创 USACO1.1 貪婪的送禮者+MAP+VECTOR使用

#include<iostream> #include<cstdio> #include<vector> #include<queue> #include<map> #include<cmath> #include<cstring> #i