zoukankan      html  css  js  c++  java
  • C. 小花梨判连通

    https://acm.ecnu.edu.cn/contest/173/problem/C/

    联通块染色,若i,j满足题目中的条件,那么他们在每幅图中的染色情况相同,即hash值相同

    使用unsigned long long hash 自动对2^64取模;

    #include<bits/stdc++.h>
    using namespace std;
    const int mod=1e9+7;
    const int M=1e5+5;
    vector<int>e[11][M];
    unsigned long long c[11][M],hashh,ans[M];
    int vis[M],col;
    map<unsigned long long ,int>sign;
    void dfs(int deep,int now){
    	if(vis[now])
    		return ;
    	vis[now]=1;
    	c[deep][now]=col;
    	for(int i=0;i<e[deep][now].size();i++){
    			dfs(deep,e[deep][now][i]);
    	}
    }
    int main(){
    	int n,m;
    	scanf("%d%d",&n,&m);
    	for(int i=0;i<m;i++){
    		int k;
    		scanf("%d",&k);
    		for(int j=0;j<k;j++){
    			int x,y;
    			scanf("%d%d",&x,&y);
    			e[i][x].push_back(y);
    			e[i][y].push_back(x);
    		}
    		col=0;
    		memset(vis,0,sizeof(vis));
    		for(int p=1;p<=n;p++){
    			if(vis[p])
    				continue;
    			col++;
    			dfs(i,p);
    		}
    	}
    	for(int i=1;i<=n;i++){
    		hashh=0;
    		for(int j=0;j<m;j++)
    			hashh=hashh*mod+c[j][i];
    		sign[hashh]++;
    		ans[i]=hashh;
    	}
    	for(int i=1;i<=n;i++)
    		cout<<sign[ans[i]]<<endl;
    	return 0;
    }
    

      

  • 相关阅读:
    陪伴
    休假
    I'm back
    Mysql程序
    Mysql 行转列
    Struts2 设置--Myelipse
    struts2 严重: Error filterStart 原因
    廉价药
    在linux下用tomcat部署java web项目的过程与注意事项
    创建表格式
  • 原文地址:https://www.cnblogs.com/starve/p/10887651.html
Copyright © 2011-2022 走看看