• 主页
  • 随笔
  • 计划
所有文章 关于我 友链

  • 主页
  • 随笔
  • 计划

A Possible Tree (带权并查集)

2018-08-03

Possible Tree

题意

给你一棵树,q个询问,问的是x->y路径上的异或和为val , 问你最多有几个询问是真的?

带权并查集。由于异或的特点,假设某个点为根,比如0,那么比如2->5的异或值,就是2->1的异或值和5->1的异或值异或一下。所以我们用yihuo[i]来表示i到源点的异或和。如果两个数的源点已经一样,那么判断一下val==yihuo[i]^yihuo[j]即可,若是不一样,就把他们union,同时yihuo[rootp]=yihuo[p]^yihuo[q]^val。

看!代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
#include <bits/stdc++.h>
using namespace std;
int fa[100010],yihuo[100010];
int Find(int x)
{
if(x!=fa[x])
{
int tmp=fa[x];
fa[x]=Find(fa[x]);
yihuo[x]^=yihuo[tmp];
return fa[x];
}
return x;
}

bool Union(int p,int q,int val)
{
int rp=Find(p),rq=Find(q);
if(rp!=rq)
{
fa[rp]=rq;
yihuo[rp]=yihuo[p]^yihuo[q]^val;
return true;
}
if((yihuo[p]^yihuo[q])!=val)
return false;
return true;
}
void init(int n)
{
for(int i=1;i<=n;i++)
{
fa[i]=i;yihuo[i]=0;
}
}
int main()
{
int t;
scanf("%d",&t);
while(t--)
{
int n,k,u,v,val;
scanf("%d%d",&n,&k);
init(n);
for(int i=0;i<n-1;i++)
scanf("%d%d",&u,&v);
int flag=1,ans=0;
for(int i=0;i<k;i++)
{
scanf("%d%d%d",&u,&v,&val);
if(!Union(u,v,val)&&flag)
{
flag=0;
ans=i;
}
}
printf("%d\n",ans);
}
return 0;
}
  • 带权并查集
  • 算法

扫一扫,分享到微信

微信分享二维码
HDU1085 Holding Bin-Laden Captive!(母函数)
伯努利求自然数幂和
  1. 1. Possible Tree
    1. 1.1. 题意
    2. 1.2. 看!代码
© 2021 xxQ
Hexo Theme Yilia by Litten
  • 所有文章
  • 关于我
  • 友链

tag:

  • CodeForces
  • 二分
  • 随想
  • 斐波那契
  • 规律
  • DP
  • 最短路
  • 图论
  • 滚动数组
  • 最大权闭合子图
  • 模板
  • 素数
  • 网络流
  • dfs
  • 思维
  • 前缀和
  • 带权并查集
  • bfs
  • 贪心
  • 排列组合
  • dp
  • CSS
  • 次短路
  • 大数分解
  • English
  • AC自动机
  • 随机化算法
  • 莫比乌斯反演
  • 线段树
  • ST表
  • HDU
  • 母函数
  • 莫队
  • 容斥
  • 网站优化
  • Lucas
  • Universe
  • 拓扑
  • 并查集
  • 全排列构造
  • 字符串哈希
  • Subline
  • 矩阵快速幂
  • 欧拉路
  • 中国剩余定理
  • ZOJ
  • 歌词
  • 学习
  • 数学
  • 欧拉函数
  • 笔试
  • 音乐
  • 下载
  • 边缘计算

    缺失模块。
    1、请确保node版本大于6.2
    2、在博客根目录(注意不是yilia根目录)执行以下命令:
    npm i hexo-generator-json-content --save

    3、在根目录_config.yml里添加配置:

      jsonContent:
        meta: false
        pages: false
        posts:
          title: true
          date: true
          path: true
          text: false
          raw: false
          content: false
          slug: false
          updated: false
          comments: false
          link: false
          permalink: false
          excerpt: false
          categories: false
          tags: true
    

  • Litten
  • 婷婷
  • 叫我陈续缘
  • 世平阜康
  • 倾城之链(网站收录)
  • HUBBLE宇宙
  • 如果月球只有一个像素那么大
  • 早茶时光
小可爱的小可爱,
拖肥的娘亲,
划水的ACMer,
努力中的小菜鸡,
想要自信和一往无前的勇气。