POJ 1703 Find themCatch them

来源:互联网 发布:印度 撤军 知乎 编辑:程序博客网 时间:2024/04/28 11:21
这类题有一点类似,那就是需要定义状态,且题目越复杂,状态越多,如果状态多,定义状态的时候要与题目给出的关系有一定联系。
////  main.cpp//  Richard////  Created by 邵金杰 on 16/7/24.//  Copyright © 2016年 邵金杰. All rights reserved.//#include<iostream>#include<cstdio>using namespace std;const int maxn=100000+100;int pa[maxn],re[maxn];int getroot(int a){    if(pa[a]==a) return a;    int t=getroot(pa[a]);    re[a]=(re[a]+re[pa[a]])%2;    pa[a]=t;    return pa[a];}void Union(int x,int y,int a,int b){    pa[b]=a;    re[b]=(1+re[y]+re[x])%2;}int main(){    int t,m,n,x,y;    char cmd[10];    scanf("%d",&t);    while(t--)    {        scanf("%d%d",&m,&n);        for(int i=1;i<=m;i++) pa[i]=i,re[i]=0;        for(int i=0;i<n;i++){            scanf("%s%d%d",cmd,&x,&y);            int a,b;            a=getroot(x);            b=getroot(y);            if(cmd[0]=='D') Union(x,y,a,b);            else{                if(a!=b) printf("Not sure yet.\n");                else{                    if(re[x]==re[y]) printf("In the same gang.\n");                    else printf("In different gangs.\n");                }            }        }    }    return 0;}

0 0
原创粉丝点击