HDU 1856 More is better
生活随笔
收集整理的這篇文章主要介紹了
HDU 1856 More is better
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
傳送門
找最大連通分量,沒有一對pairs就輸出1。
#include <iostream> #include <algorithm> #include <vector> #include <cstring> using namespace std;const int MAXN = 1e7 + 2; int pre[MAXN]; int pairs; int opt;int f(int x) {int f0 = x, f1 = x;for (; pre[f0] > 0;)f0 = pre[f0];for (; pre[f1] > 0;){int t = f1;f1 = pre[f1];pre[t] = f0;}return f0; }void u(int a, int b) {int f1 = f(a);int f2 = f(b);if (f1 != f2){if (pre[f1] <= pre[f2]){pre[f1] += pre[f2];if (-pre[f1] > opt) opt = -pre[f1];pre[f2] = f1;}else{pre[f2] += pre[f1];if (-pre[f2] > opt) opt = -pre[f2];pre[f1] = f2;}} }int main() {for (; ~scanf("%d", &pairs);){int a, b;memset(pre, -1, sizeof pre);opt = 1; // n=0 時直接輸出 1 又是這種坑點,服for (int i = 0; i < pairs; i++){scanf("%d%d", &a, &b);u(a, b);}printf("%d\n", opt);}return 0; }轉載于:https://www.cnblogs.com/CrossingOver/p/10704893.html
總結
以上是生活随笔為你收集整理的HDU 1856 More is better的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: JavaWeb基础—项目名的写法
- 下一篇: ActiveMQ (二) 常用配置简介