zoukankan      html  css  js  c++  java
  • _bzoj1191 [HNOI2006]超级英雄Hero【构图 并查集】

    传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=1191

    以锦囊作为节点,问题作为边“一步一步”构图,当一个时刻,某个联通块中边数>点数,则这个问题没有办法回答,输出答案退出程序。

    #include <cstdio>
    #include <algorithm>
    
    const int maxn = 1005, maxm = 1005;
    
    int n, m, u, v, fu, fv, fa[maxn], nume[maxn], numv[maxn], ans;
    
    int getfa(int aa) {
    	return aa == fa[aa]? aa: fa[aa] = getfa(fa[aa]);
    }
    
    int main(void) {
    	//freopen("in.txt", "r", stdin);
    	scanf("%d%d", &n, &m);
    	for (int i = 0; i < n; ++i) {
    		fa[i] = i;
    		numv[i] = 1;
    	}
    	for (int i = 0; i < m; ++i) {
    		scanf("%d%d", &u, &v);
    		fu = getfa(u);
    		fv = getfa(v);
    		if (fu == fv) {
    			++nume[fu];
    		}
    		else {
    			numv[fu] += numv[fv];
    			nume[fu] = nume[fu] + nume[fv] + 1;
    			fa[fv] = fu;
    		}
    		if (nume[fu] > numv[fu]) {
    			printf("%d
    ", i);
    			return 0;
    		}
    	}
    	printf("%d
    ", m);
    	return 0;
    }
    

      

  • 相关阅读:
    python 之字符编码
    python文件处理
    迭代器和生成器
    内置函数和匿名函数
    函数之递归
    函数 之装饰器
    python 函数进阶与闭包
    python 之 函数
    python之运算符
    python字符串内置方法
  • 原文地址:https://www.cnblogs.com/ciao-sora/p/6381796.html
Copyright © 2011-2022 走看看