1118. Birds in Forest (25)
生活随笔
收集整理的這篇文章主要介紹了
1118. Birds in Forest (25)
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
并查集。。。要用路徑壓縮,不然會超時,
#include<iostream> #include<string> #include<map> #include<vector> #include<algorithm> #include<queue> #include<set> #include<stack> using namespace std;int father[10001];int findf(int x) {int a =x;while (x != father[x]) {x = father[x];}while (a != father[a]) {int z = a;a = father[a];father[z] = x;}return x; }void Union(int a, int b) {int fa = findf(a);int fb = findf(b);if (fa != fb) {father[fa] = fb;} }int exist[10001];int main() {int num;cin >> num;for (int i = 0; i < 10001; i++) {father[i] = i;}for (int i = 0; i < num; i++) {int n;cin >> n;int temp, pre = -1;for (int j = 0; j < n; j++) {cin >> temp;exist[temp] = 1;if (pre != -1) {Union(pre, temp);}pre = temp;}}int k = 1;while (exist[k] == 1) {k++;}k--;set<int> s;for (int i = 1; i <= k; i++) {s.insert(findf(i));//cout << findf(i) << ' '; }cout << s.size()<<' '<<k<<endl;int a;cin >> a;for (int i = 0; i < a; i++) {int p, q;cin >> p >> q;if (findf(p) == findf(q)) {cout << "Yes" << endl;}else {cout << "No" << endl;}}system("pause");}?
一定要記住這段。。。
轉(zhuǎn)載于:https://www.cnblogs.com/wsggb123/p/7268067.html
總結(jié)
以上是生活随笔為你收集整理的1118. Birds in Forest (25)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: shell之九九乘法表
- 下一篇: angular directive自定义