这题说的是 在一个 森林中 两个人在这棵树上涂颜色,黑色或者白色,第一次只能在1 号节点上涂色 第二次 只能在2上涂,以此类推, 在每个节点上只能涂黑色或者白色,并且相邻的点不能有相同的颜色,最后求不能填的人就输了。

每个点周围的比他小的点 都会有一个祖先(或者是他们自己),我们知道他周围的点的祖先中最小的那个点 一定是影响他的最小的点 那么他取什么值这就不那么重要了。无论他取黑还是白,后面的就只是相对而言,那么如果他受到第二小或者以上的点的影响,那么他就一定不能了, 还有就是当他和他周围点离他们共同祖先的距离一样的时候也是不行的。

哪个先出现错误哪个就失败了。

#include <iostream>
#include <algorithm>
#include<string.h>
#include<vector>
#include <cstdio>
using namespace std;
const int maxn=;
struct Edg{
int to,nxt;
Edg(int a=,int b=){
to=a; nxt=b;
}
}P[maxn*];
int len[maxn],fa[maxn],first[maxn],pos;
void add(int a, int b){
P[pos].to=b; P[pos].nxt=first[a];
first[a]=pos++;
}
int find(int x){
if(x!=fa[x]){
int f=find(fa[x]);
len[ x ] = len[ fa[x] ]^len[x];
fa[ x ] = f;
}
return fa[x];
}
bool uunion(int x, int y){
int fx=find(x);
int fy=find(y);
if(fx==fy){
return len[x]!=len[y];
}
if(fx<fy){
fa[fy]=fx;
len[fy ] = len[x]^len[y]^;
}else{
fa[fx]=fy;
len[fx] = len[x]^len[y]^;
}
return true;
}
int qq[maxn*];
int main()
{
freopen("in.txt","r",stdin);
freopen("out.txt","w",stdout);
int N,M,cas;
scanf("%d",&cas);
for(int cc=; cc<=cas; cc++){
pos=;
scanf("%d%d",&N,&M);
for(int i=; i<=N; i++){
first[i]=; fa[i]=i; len[i]=;
}
for(int i=; i<M; i++){
int a,b;
scanf("%d%d",&a,&b);
add(a,b); add(b,a);
}
int ans=-;
for(int i=; i<=N&&ans==-; i++){
int pp=;
for(int j=first[i]; j ; j=P[j].nxt){
int to=P[j].to;
if(to>i)continue;
qq[pp++]=find(to);
}
sort(qq,qq+pp);
pp = unique(qq,qq+pp)-qq;
for(int j=; j<pp; j++)
if( qq[j]% != i% )ans=i;
for(int j=first[i]; j; j=P[j].nxt){
int to=P[j].to;
if(to>i) continue;
if(!uunion(i,to))ans=i;
}
}
printf("Case %d: ",cc);
if(ans==-)printf("Draw\n");
else{
if( (ans&) ==)printf("Maze\n");
else printf("Fat Brother\n");
}
} return ;
}

师大校赛D coloring Game 并查集的更多相关文章

  1. 2019浙师大校赛(浙大命题)(upc复现赛)总结

    2019浙师大校赛(浙大命题)(upc复现赛)总结 早上九点开始.起得迟了,吃了早饭慌慌张张跑过去,刚到比赛就开始了. 开始分别从前往后和从后往前看题,一开始A题,第一发WA,第二次读题发现漏看了还有 ...

  2. HDU 4750 Count The Pairs (2013南京网络赛1003题,并查集)

    Count The Pairs Time Limit: 20000/10000 MS (Java/Others)    Memory Limit: 65535/65535 K (Java/Others ...

  3. zoj 3659 第37届ACM/ICPC 长春赛区现场赛E题 (并查集)

    题意:给出一棵树,找出一个点,求出所有点到这个点的权值和最大,权值为路径上所有边权的最小值. 用神奇的并查集,把路按照权值从大到小排序,然后用类似Kruskal的方法不断的加入边. 对于要加入的一条路 ...

  4. noip模拟赛 动态仙人掌(并查集,贪心)

    思路: 贪心+并查集 因为45‘,所以可以很方便的算出每个仙人掌的最晚起跳(左端点) 右端点自然也能出来 先按左端点排序 如果他右面的和他相交,就更新 用并查集维护这个更新的关系 更新的同时维护高就好 ...

  5. PAT 天梯赛 L2-024. 部落 【并查集】

    题目链接 https://www.patest.cn/contests/gplt/L2-024 题意 给出 几个不同的圈子,然后 判断 有哪些人 是属于同一个部落的,或者理解为 ,有哪些人 是有关系的 ...

  6. 2019 ICPC 徐州网络赛 B.so easy (并查集)

    计蒜客链接:https://nanti.jisuanke.com/t/41384 题目大意:给定n个数,从1到n排列,其中有q次操作,操作(1) 删除一个数字 // 操作(2)求这个数字之后第一个没有 ...

  7. 蓝桥杯模拟赛-引爆炸弹-DFS+并查集

    今天整理电脑,翻出来了很久以前大佬给的题,贴一下. 引爆炸弹 1000ms 在一个 n×m的方格地图上,某些方格上放置着炸弹.手动引爆一个炸弹以后,炸弹会把炸弹所在的行和列上的所有炸弹引爆,被引爆的炸 ...

  8. 并查集+拓扑排序 赛码 1009 Exploration

    题目传送门 /* 题意:无向图和有向图的混合图判环: 官方题解:首先对于所有的无向边,我们使用并查集将两边的点并起来,若一条边未合并之前, 两端的点已经处于同一个集合了,那么说明必定存在可行的环(因为 ...

  9. POJ-2421Constructing Roads,又是最小生成树,和第八届河南省赛的引水工程惊人的相似,并查集与最小生成树的灵活与能用,水过~~~

    Constructing Roads Time Limit: 2000MS   Memory Limit: 65536K               Description There are N v ...

随机推荐

  1. ORACLE监听配置及测试实验

    实验一: 修改db_domain和service_name 我们将Db_name和Db_domain两个参数用'.'连接起来,表示一个数据库,并将该数据库的名称称为Global_name即等于serv ...

  2. java web指定主页

    正常情况下主页是在web.xml里面配置欢迎页面,可以加个过滤器重定向就可以: public void doFilter(ServletRequest req, ServletResponse res ...

  3. ConcurrentHashMap详解

    public class ConcurrentHashMap<K,V>extends AbstractMap<K,V>implements ConcurrentMap<K ...

  4. webmin改https访问

    直接用yum安装: yum -y install openssl perl perl-Net-SSLeay perl-IO-Tty perl-Crypt-SSLeay 测试perl模块是是否安装成功, ...

  5. Echart绘制趋势图和柱状图总结

    1.legend名字与series名字一样,即可联动,且不可手动去掉联动效果 2.通过legend图例联动,隐藏绘制图线后,对应( yAxisIndex: 1)坐标y轴如果没有同时设置min和max的 ...

  6. 深入理解Lua的闭包一:概念、应用和实现原理

    本文首先通过具体的例子讲解了Lua中闭包的概念,然后总结了闭包的应用场合,最后探讨了Lua中闭包的实现原理.   闭包的概念 在Lua中,闭包(closure)是由一个函数和该函数会访问到的非局部变量 ...

  7. spring + mybatis配置及网络异常设置

    Spring引入mybatis <beans xmlns="http://www.springframework.org/schema/beans" xmlns:contex ...

  8. spring的面向切面实现的两种方式

    面向切面:主要应用在日志记录方面.实现业务与日志记录分离开发. spring面向切面有两种实现方式:1.注解 2.xml配置. 1.注解实现如下: (1)配置如下: <?xml version= ...

  9. 24-Python3 OS

    24-Python3 OS ''' OS文件/目录方法 ''' ##os.access():检验权限模式 fo1 = open('/Users/ligaijiang/PycharmProjects/f ...

  10. [LeetCode] 619. Biggest Single Number_Easy tag: SQL

    Table number contains many numbers in column num including duplicated ones.Can you write a SQL query ...