分析

用并查集维护

每次一个连通块的每个点记录它到当前连通块的根的异或值

对于不符合的情况容易判断

最后判断是否都在一个连通块内然后记录答案即可

代码

#include<bits/stdc++.h>
using namespace std;
int n,m,a[],b[],fa[],w[];
inline int sf(int x){if(fa[x]==x)return x;int f=sf(fa[x]);w[x]^=w[fa[x]];return fa[x]=f;}
int main(){
int i,j,k,t,ok;
scanf("%d",&t);
while(t--){
int mn=1e9+,mx=;
ok=;scanf("%d%d",&n,&m);
for(i=;i<=n;i++)fa[i]=i,w[i]=;
for(i=;i<n;i++)scanf("%d%d",&a[i],&b[i]);
for(i=;i<=m;i++){
int x,y,z;
scanf("%d%d%d",&x,&y,&z);
int xx=sf(x),yy=sf(y);
if(xx==yy){
if((w[x]^w[y])!=z)ok=;
}else {
fa[xx]=yy;
w[xx]=(w[x]^w[y]^z);
}
}
if(!ok)puts("Impossible");
else {
for(i=;i<n;i++){
if(sf(a[i])!=sf(b[i])){
ok=;
puts("No");
break;
}
mn=min(mn,(w[a[i]]^w[b[i]]));
mx=max(mx,(w[a[i]]^w[b[i]]));
}
if(ok)printf("%d %d\n",mn,mx);
}
}
return ;
}

loj#6157 A ^ B Problem的更多相关文章

  1. LOJ [#115. 无源汇有上下界可行流](https://loj.ac/problem/115)

    #115. 无源汇有上下界可行流 先扔个板子,上下界的东西一点点搞,写在奇怪的合集里面 Code: #include <cstdio> #include <cstring> # ...

  2. loj6157 A^B Problem (并查集)

    题目: https://loj.ac/problem/6157 分析: 这种树上异或,一般是采用分位考虑,但是这题即使分位,也会发现非常不好处理 这里考虑维护一个点到其根的路径的异或值 用并查集去检测 ...

  3. LOJ子序列

    题目描述 https://loj.ac/problem/6074 题解 对于子序列的dp,我们可以设置一个dp. 我们设dp[i]表示以i这个字符结尾的子序列个数,转移为dp[i]+=∑dp[k]-d ...

  4. Loj #528. 「LibreOJ β Round #4」求和 (莫比乌斯反演)

    题目链接:https://loj.ac/problem/528 题目:给定两个正整数N,M,你需要计算ΣΣu(gcd(i,j))^2 mod 998244353 ,其中i属于[1,N],j属于[1,M ...

  5. Loj 10115 「一本通 4.1 例 3」校门外的树 (树状数组)

    题目链接:https://loj.ac/problem/10115 题目描述 原题来自:Vijos P1448 校门外有很多树,学校决定在某个时刻在某一段种上一种树,保证任一时刻不会出现两段相同种类的 ...

  6. loj 6008 餐巾计划 - 费用流

    题目传送门 传送门 题目大意 (经典题还不知道题意?) 容易想到需要把未使用的餐巾和已经使用的餐巾分开. 设$X_i$表示第$i$天已经的使用餐巾的点,设$Y_i$表示第$i$天还未使用的餐巾的点 我 ...

  7. loj 6037 「雅礼集训 2017 Day4」猜数列 - 动态规划

    题目传送门 传送门 题目大意 有一个位置数列,给定$n$条线索,每条线索从某一个位置开始,一直向左或者向右走,每遇到一个还没有在线索中出现的数就将它加入线索,问最小的可能的数列长度. 依次从左到右考虑 ...

  8. loj #6.Guess Number

    原题链接:https://loj.ac/problem/6 Guess Number 内存限制:256 MiB 时间限制:1000 ms 题目类型:交互 题目描述 这是一个交互题的模板. 系统会随机生 ...

  9. LOJ 3089 「BJOI2019」奥术神杖——AC自动机DP+0/1分数规划

    题目:https://loj.ac/problem/3089 没想到把根号之类的求对数变成算数平均值.写了个只能得15分的暴力. #include<cstdio> #include< ...

随机推荐

  1. Luogu P4562 [JXOI2018]游戏

    题目 我们用埃氏筛从\(l,r\)筛一遍,每次把没有被筛掉的数的倍数筛掉. 易知最后剩下来的数(这个集合记为\(S\))的个数就是我们需要选的数,设有\(s\)个,令\(n=r-l+1\). 记\(f ...

  2. jquery导航栏高亮(二级菜单点击一级保持高亮)

    <script type="text/javascript"> var urlstr = location.href; var urlstatus=false; $(& ...

  3. nginx下载安装和虚拟机的配置

    一. Nginx下载安装 1.Nginx下载:nginx-1.13.0.tar.gz,下载到:/usr/local/software/ wget http://nginx.org/download/n ...

  4. 1.利用canvas画一个太极图

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...

  5. 理解PHP面向对象三大特性

    一.封装性 目的:保护类里面的数据,让类更安全, protected和private只能在类中或子类访问,通过public提供有限的接口供外部访问,封装是控制访问,而不是拒绝访问 封装关键字:publ ...

  6. Apple Pay接入详细教程

    Apple Pay接入详细教程   来源:Yasin的简书 链接:http://www.jianshu.com/p/738aee78ba52# Apple Pay运行环境:iPhone6以上设备,操作 ...

  7. KFK2060穿越者

  8. 关于Mysql group by 的记录

    对于有group by 字段的select语句,group by 后面的字段如果没有出现在组函数里(max,min,sum,avg, count等),则一定要出现在select后面的字段里, 否则会报 ...

  9. fpga为什么要用nios 开发

    同一个项目可以用NIOS2也可以不用就可以完成,这句话说对也可以说不对,这要看是一个什么样的项目,你那样问的话可就说明有CPU和没CPU下的使用情况你还没有搞清楚,这两者并没有完全分开,简单的说就是有 ...

  10. Django基础命令

    创建工程 django-admin startproject 项目名创建应用 django-admin startapp 应用名 生成迁移 python3 manage.py makemigratio ...