zoukankan      html  css  js  c++  java
  • 每天一道算法题(37)——360校招机试之寻找同乡

    题目:

         输如若干行,第一行输入人的个数n和存在同乡关系的对数m。后面紧接着是m行(m<n(n-1)/2)这些同乡关系对。判断编号为1的人有多少个同乡。给出n组这样的关系式,判断同乡个数。

    代码:

    #include <iostream>  
    #include <string>
    #include<vector>
    using namespace std;
    void process(int n,int g,vector<int> &v){
    	int* flag=new int[n+1];
    	for(int i=0;i<n+1;i++)
    		flag[i]=i;
    
    	int p1,p2;
    	int temp;
    	for(int i=0;i<g;i++){
    		cin>>p1>>p2;
    		if(flag[p1]==1&&flag[p2]!=1){
    			temp=flag[p2];
    			for(int j=0;j<n+1;j++)
    				if(flag[j]==temp)
    					flag[j]=1;
    		}
    		else if(flag[p2]==1&&flag[p1]!=1){
    			temp=flag[p1];
    			for(int k=0;k<n+1;k++)
    				if(flag[k]==temp)
    					flag[k]=1;
    		}
    		else
    			flag[p1]=flag[p2];
    	}
    
    	int num=0;
    	for(int i=0;i<n+1;i++){
    		if(i!=1&&flag[i]==1)
    			num++;
    	}
    	v.push_back(num);
    	delete []flag;
    }
    int main(void)  
    {  
    	int n,g;
    	vector<int> v;
    	cin>>n>>g;
    	while(!(n==0&&g==0)){
    		process(n,g,v);
    		cin>>n>>g;
    	}
    	for(int i=0;i<v.size();i++)
    		cout<<v[i]<<endl;
    } 
    


  • 相关阅读:
    redis发布订阅
    CSS 布局
    CSS 布局
    CSS Float(浮动)实例
    CSS 布局
    CSS Float(浮动)
    CSS Position(定位)实例
    CSS Position(定位)
    CSS Display(显示) 与 Visibility(可见性)实例
    CSS Display(显示) 与 Visibility(可见性)
  • 原文地址:https://www.cnblogs.com/engineerLF/p/5392964.html
Copyright © 2011-2022 走看看