zoukankan      html  css  js  c++  java
  • poj2492 A Bug's Life

    题目链接:https://vjudge.net/problem/POJ-2492

    简单题意:给定一些虫子和他们之间的交往关系,判断它们中是否有同性恋虫

    设v[x]=0表示x和par[x]同性,v[x]=1异性,然后用带权并查集做就可以了,算是食物链的简化版(只有两个关系)

    #include<cstdio>
    
    int t,T,n,m,i,j,x,y,f;
    int par[2010],v[2010];
    
    int find(int x){ //*带权并查集模板 
    	if (x!=par[x]) {
    	  int u=par[x];
    	  par[x]=find(par[x]);
    	  v[x]=(v[x]+v[u])%2;
    	}
    	return par[x];
    }
    
    int main(){
    	scanf("%d",&t); T=t;
    	while (t--){
    	  scanf("%d%d",&n,&m); f=0;
    	  for (i=1;i<=n;i++){ 
    	    v[i]=0; par[i]=i;
    	  }
    	  for (i=1;i<=m;i++){
    	  	scanf("%d%d",&x,&y);
    	  	int xx=find(x);int yy=find(y);
    	  	if (xx==yy){
    	  	  int d=(v[x]+v[xx]-v[y]+2)%2; //*
    	  	  if (d==0) f=1;  //x,y同性 
    		}
    		else {
    		  par[xx]=yy; v[xx]=(1+v[y]-v[x])%2; //*
    		} 
    	  }
    	  if (f==1) printf("Scenario #%d:
    Suspicious bugs found!
    
    ",T-t);	  
    	  else printf("Scenario #%d:
    No suspicious bugs found!
    
    ",T-t);
    	}
    	return 0;
    }
    
  • 相关阅读:
    project
    类欧几里得算法
    还不熟悉的内容
    Hall定理
    FWT学习笔记
    最小树形图
    BZOJ 3027 [Ceoi2004]Sweet
    多项式除法
    VUE 计算属性和侦听器
    VUE 模板语法
  • 原文地址:https://www.cnblogs.com/edmunds/p/13440157.html
Copyright © 2011-2022 走看看