並查集是一種支援合併與查詢的資料結構,在森林中進行操作,加上路徑壓縮,合併和查詢的時間複雜度幾乎都是常數。並查集最基礎的作用就是建立不同的點之間的所謂的「關係」,並且查詢兩者是否有關係。並查集的乙個特點是向量型關係傳遞性,比如a->b b->c,則有a->c,是不是特別像向量之間的傳遞?在很多時候並查集的應用都涉及到了這個性質。並查集的**可比線段樹主席樹友好一點orz hdu1213板題,**如下:
1 #include2using
namespace
std;
3 typedef unsigned int
ui;4 typedef long
long
ll;5 typedef unsigned long
long
ull;
6#define pf printf
7#define mem(a,b) memset(a,b,sizeof(a))
8#define prime1 1e9+7
9#define prime2 1e9+9
10#define pi 3.14159265
11#define lson l,mid,rt<<1
12#define rson mid+1,r,rt<<1|1
13#define scand(x) scanf("%llf",&x)
14#define f(i,a,b) for(int i=a;i<=b;i++)
15#define scan(a) scanf("%d",&a)
16#define mp(a,b) make_pair((a),(b))
17#define p pair18
#define dbg(args) cout<<#args<<":"<19
#define inf 0x3f3f3f3f
20 inline int
read()
24while(isdigit(ch))ans=(ans<<3)+(ans<<1)+ch-'
0',ch=getchar();
25return ans*w;26}
27const
int maxn=1e6+10;28
intn,m,t;
29int
f[maxn];
30set
s;31void
init()
3236
int find(int
x)37 42
void union(int x,int
y)43 52
}5354int
main()
5569 }
hdu1213並查集模板
題意 n個人吃飯 給出認識的關係,認識的才能在一張桌子上吃飯,求最少需要幾張桌子 思路 沒給出兩人關係,放入 並查集中 最後查詢父節點的數目即可 include include include include include include using namespace std int n,m i...
爆炒洋蔥圈 HDU 1213 並查集初學
雖說做專案會讓人有成就感,但是演算法這種考驗基礎的東西不能落下。更何況我演算法那麼差呢。最近在刷學校的oj準備ccf,刷到了並查集,寫下這篇文章供自己以後和後來人查閱。如有紕漏,敬請指教。並查集是一種樹形的資料結構,用於處理一些不相交集合的合併和查詢問題。常常在使用中以森林來表示 descripti...
HDU 1213有意思的並查集 掌門
深夜未耕 乙個典型的並查集 參考 借用了裡面的掌門學說注釋這道題 include using namespace std int pre 1010 你不知道吧 我乙個人在寢室 放著楊千嬅的小星星 對面你發來一句話 我對著螢幕空空地說 我喜歡你 我喜歡你你聽到了嗎 聽不到也沒關係 我在慢慢像你靠近 i...