这题说的是 在一个 森林中 两个人在这棵树上涂颜色,黑色或者白色,第一次只能在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. day4_处理json

    说明:#json是一种通用的数据类型,所有的语言都认识.#k - v {}#json串就是一个字符串,不能根据key-value取值#json可以转成字典#json串就是字符串,可放在三引号中校验js ...

  2. xca自签发证书解决chrome浏览器证书不可信问题记录

    xca打开的界面 依次File, New DataBase,选择xdb文件保存路径,再输入密码 切换到Certificates页面,点击New Certificate 出现如下界面 因为要创建根证书, ...

  3. 10.1-uC/OS-III任务堆栈空间

    1.设置任务优先级 嵌入式系统中的重要的应用应该被设置为高优先级,一些显示操作就应该被设置为低优先级. 然而, 由于实时系统的复杂性, 在大多数情况下任务的优先级是不能被事先确定的.多数系统中,不是所 ...

  4. 【雅思】【写作】【大作文】Report

    •Report •主要分类 •两个问题 • •1. 原因,解决办法 • •2. 原因,积极还是消极 • •3. Freestyle •报告型 •In cities and towns all over ...

  5. MySQL 创建用户并分配用户权限

    mysql在最新的版本中会生成随机密码,存储在/etc/my.conf的文件中,但是大多数使用者不会在意这个,因为随机的密码识别性太差,所以我们可以自己配置数据库用户以及设置密码. 设置跳过密码登陆r ...

  6. 常见的local variable 'x' referenced before assignment问题

    def fun1(): x = 5 def fun2(): x *= 2 return x return fun2() 如上代码,调用fun1() 运行会出错:UnboundLocalError: l ...

  7. 由ngx.say和ngx.print差异引发的血案

    Jan 16, 2018openresty点击 最近上线一个项目,利用openresty在前面做反向代理,部分地址通过lua的http请求后端接口进行返回,在线下测试都没问题,公司预发灰度测试都通过了 ...

  8. Windows 下MySql Replication(复制)配置

    环境准备 到官网下载mysql-installer-web-community-5.7.21.0.msi并安装,选择MySql Workbench,记录安装时root输入的密码. 需要安装在两台机器上 ...

  9. Ext.define细节分析

    自己写的其实还是不懂,再看看别人写的吧Extjs4 源码分析系列一 类的创建过程https://www.cnblogs.com/creazyguagua/p/4302864.htmlhttp://ww ...

  10. MyBatis SpringMVC映射配置注意

    applicationContext.xml中要配置 <!-- MyBatis 的 sqlSessionFactory --> <bean id="sqlSessionFa ...