zoukankan      html  css  js  c++  java
  • hdoj--2120--Ice_cream's world I(并查集判断环)

    Ice_cream's world I

    Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
    Total Submission(s): 975    Accepted Submission(s): 567


    Problem Description
    ice_cream's world is a rich country, it has many fertile lands. Today, the queen of ice_cream wants award land to diligent ACMers. So there are some watchtowers are set up, and wall between watchtowers be build, in order to partition the ice_cream’s world. But how many ACMers at most can be awarded by the queen is a big problem. One wall-surrounded land must be given to only one ACMer and no walls are crossed, if you can help the queen solve this problem, you will be get a land.
     

    Input
    In the case, first two integers N, M (N<=1000, M<=10000) is represent the number of watchtower and the number of wall. The watchtower numbered from 0 to N-1. Next following M lines, every line contain two integers A, B mean between A and B has a wall(A and B are distinct). Terminate by end of file.
     

    Output
    Output the maximum number of ACMers who will be awarded.
    One answer one line.
     

    Sample Input
    8 10 0 1 1 2 1 3 2 4 3 4 0 5 5 6 6 7 3 6 4 7
     

    Sample Output
    3
     

    Author
    Wiskey
     

    Source
     

    Recommend
    威士忌   |   We have carefully selected several similar problems for you:  2118 2119 2121 2117 2115 

    好久不写并查集,刚开始以为会是scc什麽的,还好没写- -||

    #include<stdio.h>
    #include<string.h>
    #include<iostream>
    #include<algorithm>
    using namespace std;
    int pre[10010],n,m,cnt;
    void init()
    {
    	for(int i=0;i<10010;i++)
    	pre[i]=i;
    }
    int find(int x)
    {
    	return pre[x]==x?x:find(pre[x]);
    }
    void join(int x,int y)
    {
    	int fx=find(x);
    	int fy=find(y);
    	if(fy!=fx)
    	pre[fy]=fx;
    	else
    	cnt++;
    }
    int main()
    {
    	while(cin>>n>>m)
    	{
    		init();
    		int a,b;
    		cnt=0;
    		for(int i=0;i<m;i++)
    		{
    			cin>>a>>b;
    			join(a,b);
    		}
    		cout<<cnt<<endl;
    	}
    	return 0;
    }


  • 相关阅读:
    WCF 第八章 安全 确定替代身份(中)使用AzMan认证
    WCF 第八章 安全 总结
    WCF 第八章 安全 因特网上的安全服务(下) 其他认证模式
    WCF Membership Provider
    WCF 第八章 安全 确定替代身份(下)模仿用户
    WCF 第八章 安全 因特网上的安全服务(上)
    WCF 第九章 诊断
    HTTPS的七个误解(转载)
    WCF 第八章 安全 日志和审计
    基于比较的排序算法集
  • 原文地址:https://www.cnblogs.com/playboy307/p/5273543.html
Copyright © 2011-2022 走看看