跟着chengyulala刷题之[kuangbin带你飞]之'并查集'专题/斜眼笑

[kuangbin带你飞] 专题1-23 https://vjudge.net/article/187

专题五 并查集 
POJ 2236 Wireless Network  http://poj.org/problem?id=2236
POJ 1611 The Suspects  http://poj.org/problem?id=1611
HDU 1213 How Many Tables  http://acm.hdu.edu.cn/showproblem.php?pid=1213
HDU 3038 How Many Answers Are Wrong  http://acm.hdu.edu.cn/showproblem.php?pid=3038
POJ 1182 食物链  https://vjudge.net/problem/POJ-1182
POJ 1417 True Liars  https://vjudge.net/problem/POJ-1417
POJ 1456 Supermarket  http://poj.org/problem?id=1456
POJ 1733 Parity game  http://poj.org/problem?id=1733
POJ 1984 Navigation Nightmare  https://vjudge.net/problem/POJ-1984
POJ 2492 A Bug‘s Life  https://vjudge.net/problem/POJ-2492
POJ 2912 Rochambeau  https://vjudge.net/problem/POJ-2912
ZOJ 3261 Connections in Galaxy War  https://vjudge.net/problem/ZOJ-3261
HDU 1272 小希的迷宫  http://acm.hdu.edu.cn/showproblem.php?pid=1272
POJ 1308 Is It A Tree?  http://poj.org/problem?id=1308

// hdu 1272 & poj 1308

// "求树是否是个环" ,水。

 1 #include<cstdio>
 2 #include<cstring>
 3 using namespace std;
 4
 5 const int MAXN = 1e3+5;
 6
 7 inline int read() {
 8     char c = getchar(); int s = 0, f = 1;
 9     while(c < ‘0‘ || c > ‘9‘) { if(c == ‘-‘) f = -1; c = getchar(); }
10     while(c >= ‘0‘ && c <= ‘9‘)  s = s*10 + c-‘0‘, c = getchar();
11     return s*f;
12 }
13
14 int p[MAXN];
15
16 inline int find(int x) { return p[x] == x ? x : p[x] = find(p[x]); }
17
18 int main() {
19     int s, e;
20     int T = 1;
21     while(1) {
22         bool flag = true;
23         while(1) { //scanf("%d%d", &s, &e) == 2 && s
24             s = read(), e = read();
25             if(s == 0 && e == 0) break;
26             if(s == -1) return 0;
27             if(!p[s]) p[s] = s;
28             if(!p[e]) p[e] = e;
29             int x = find(s);
30             int y = find(e);
31             if(x == y) flag = false;
32             else p[x] = y;
33         }
34         int ans = 0;
35         for(int i = 1; i <= MAXN; ++i) {
36             if(p[i] == i) ans++;
37             p[i] = 0;
38         }
39
40         printf("Case %d is ", T++);
41         if(!flag || ans > 1) printf("not a tree.\n");
42         else printf("a tree.\n");
43     }
44     return 0;
45 }

跟着chengyulala刷题之[kuangbin带你飞]之'并查集'专题/斜眼笑

原文地址:https://www.cnblogs.com/pupil-xj/p/11614643.html

时间: 2024-11-10 01:17:53

跟着chengyulala刷题之[kuangbin带你飞]之'并查集'专题/斜眼笑的相关文章

[kuangbin]带你飞之&#39;最短路练习&#39;专题(未完成)

// 带飞网址 ??•??•?? 专题四 最短路练习 √ POJ 2387 Til the Cows Come HomePOJ 2253 FroggerPOJ 1797 Heavy TransportationPOJ 3268 Silver Cow PartyPOJ 1860 Currency ExchangePOJ 3259 WormholesPOJ 1502 MPI MaelstromPOJ 3660 Cow ContestPOJ 2240 ArbitragePOJ 1511 Invitat

Tarjan 联通图 Kuangbin 带你飞 联通图题目及部分联通图题目

Tarjan算法就不说了 想学看这 https://www.byvoid.com/blog/scc-tarjan/ https://www.byvoid.com/blog/biconnect/ 下面是几份基本的模版 首先是无向图割点桥的代码 下面的代码是用于求割点数目的 其中add_block[u] = x  表示删除u点之后增加的联通块个数.注意是增加的联通块个数 const int MAXN = 1010; const int MAXM = 10010; const int INF = 0x

kuangbin带你飞专题一 简单搜索 题解

目录 [kuangbin带你飞]专题一 简单搜索 [kuangbin带你飞]专题一 简单搜索 总结:用时2天半终于把这个专题刷完了 对于最基础的dfs bfs 路径打印 状态转移也有了一点自己些微的理解 其实2天半可以压缩到1天半的 主要是自己太懒了...慢慢加油刷bin神的专题呀 从大二下学期开始学算法 一开始就知道这个专题 一开始对于这个专题里的所有问题感觉都好难啊..就直接放弃了 看lrj的书 现在看到这个专题还挺唏嘘的吧 突然觉得思维和想法也不是很难 果然是那个时候心不静&还是储量不够吗

「kuangbin带你飞」专题十二 基础DP

layout: post title: 「kuangbin带你飞」专题十二 基础DP author: "luowentaoaa" catalog: true tags: mathjax: true - kuangbin - 动态规划 传送门 A.HDU1024 Max Sum Plus Plus 题意 给你N个数,然后你分成M个不重叠部分,并且这M个不重叠部分的和最大. 思路 动态规划最大m字段和,dp数组,dp[i][j]表示以a[j]结尾的,i个字段的最大和 两种情况:1.第a[j

「kuangbin带你飞」专题二十 斜率DP

layout: post title: 「kuangbin带你飞」专题二十 斜率DP author: "luowentaoaa" catalog: true tags: mathjax: true - kuangbin - 动态规划 - 斜率DP 传送门 A.HDU - 3507 Print Article 题意 就是输出序列a[n],每连续输出的费用是连续输出的数字和的平方加上常数M 让我们求这个费用的最小值. 题解 概率DP的入门题,把我搞得要死要活的. 首先dp[i]表示输出前i

「kuangbin带你飞」专题十八 后缀数组

layout: post title: 「kuangbin带你飞」专题十八 后缀数组 author: "luowentaoaa" catalog: true tags: - kuangbin - 字符串 - 后缀数组 传送门 倍增法 struct DA{ bool cmp(int *r,int a,int b,int l){ return r[a]==r[b]&&r[a+l]==r[b+l]; } int t1[maxn],t2[maxn],c[maxn]; int r

「kuangbin带你飞」专题二十二 区间DP

layout: post title: 「kuangbin带你飞」专题二十二 区间DP author: "luowentaoaa" catalog: true tags: - kuangbin - 区间DP - 动态规划 传送门 B.LightOJ - 1422 Halloween Costumes 题意 按顺序参加舞会,参加一个舞会要穿一种衣服,可以在参加完一个舞会后套上另一个衣服再去参加舞会,也可以在参加一个舞会的时候把外面的衣服脱了,脱到合适的衣服,但是脱掉的衣服不能再穿,参加完

[kuangbin带你飞]专题十六 KMP &amp; 扩展KMP &amp; Manacher :G - Power Strings POJ - 2406(kmp简单循环节)

[kuangbin带你飞]专题十六 KMP & 扩展KMP & Manacher G - Power Strings POJ - 2406 题目: Given two strings a and b we define a*b to be their concatenation. For example, if a = "abc" and b = "def" then a*b = "abcdef". If we think of

[kuangbin]带你飞之&#39;线段树&#39;专题(未完成)

// 带飞网址 https://vjudge.net/article/187 专题七 线段树 HDU 1166 敌兵布阵HDU 1754 I Hate It√ POJ 3468 A Simple Problem with IntegersPOJ 2528 Mayor's postersHDU 1698 Just a HookZOJ 1610 Count the ColorsPOJ 3264 Balanced LineupHDU 4027 Can you answer these queries?