题目描述

给出无向图G,边 (Ai,Bi)的权是Ci,判断下列性质是否成立:

对于任意圈C,其边权的异或和是0

输入输出格式

输入格式:

第1 行,1 个整数T,表示数据的组数。

每组数据第1 行,2 个整数 N,M,表示图G 点和边的数量。

M 行,每行3 个整数 Ai,Bi,Ci,

输出格式:

对每个数据输出一行,“Yes” 或者“No”

输入输出样例

输入样例#1:

2 3 3
1 2 1
2 3 2
3 1 3
1 1
1 1 1

输出样例#1:

Yes
No

说明

• 对于50% 的数据, N,M≤20

• 对于100% 的数据, 1 <= N,M <= 50 , 1 <= Ai,Bi <= N , 0 <= Ci < 2^16

思路解析

一看数据范围,决定暴力。
枚举每个点,然后dfs,如果回到这个点自己,就判断异或和是不是0
没了

code

#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std; const int MAXN = ;
const int MAXM = ; int n,m,T;
struct Edge {
int next;
int to,w;
} l[MAXM<<];
int head[MAXN],cnt=;
bool vis[MAXN],flag;
bool v[MAXM]; inline void add(int x,int y,int z) {
cnt++;
l[cnt].next = head[x];
l[cnt].to = y;
l[cnt].w = z;
head[x] = cnt;
return;
} inline void dfs(int x,int from,int sum,int syqAK) {
if(flag) return;
if(vis[x]) {
if(sum && x == syqAK) flag = true;
return;
}
vis[x] = true;
for(register int i = head[x];i;i = l[i].next) {
if(l[i].to == from || v[i]) continue;
v[i] = v[i ^ ] = true;
dfs(l[i].to,x,(sum xor l[i].w),syqAK);
}
} int main() {
scanf("%d",&T);
while(T--) {
scanf("%d%d",&n,&m);
int x,y,z;
for(int i = ;i <= m;i++) {
scanf("%d%d%d",&x,&y,&z);
add(x,y,z);
add(y,x,z);
}
for(int i = ;i <= n;i++) {
dfs(i,,,i);
memset(vis,,sizeof(vis));
memset(v,,sizeof(v));
} if(flag) printf("No\n");
else printf("Yes\n");
memset(head,,sizeof(head));
flag = ;
cnt = ;
}
return ;
}

  

[Luogu] P3907 圈的异或的更多相关文章

  1. 洛谷——P3907 圈的异或

    P3907 圈的异或 无向图$dfs$找环,并判断边权异或和是否为0 #include<iostream> #include<cstdio> #include<algor ...

  2. LUGOU P3907 圈的异或

    传送门 解题思路 其实就是找出所有的环判断,因为数据范围很小直接暴力做,注意要判断自环. 代码 #include<iostream> #include<cstdio> #inc ...

  3. Luogu P4551 最长异或路径

    题目链接 \(Click\) \(Here\) \(01Trie\)好题裸题. 取节点\(1\)为根节点,向下扫每一个点从根节点到它路径上的异或和,我们可以得到一个\(sumx[u]\). 现在路径异 ...

  4. LuoGu P2420 让我们异或吧

    其实......这就是个SB题,本来看到这个题,和树上路径有关 于是--我就欣喜地打了一个树剖上去,结果嘞,异或两遍等于没异或 所以这题和LCA屁关系都没有,所以这题就是个树上DFS!!!! 所以它为 ...

  5. Luogu P4551 最长异或路径 01trie

    做一个树上前缀异或和,然后把前缀和插到$01trie$里,然后再对每一个前缀异或和整个查一遍,在树上从高位向低位贪心,按位优先选择不同的,就能贪出最大的答案. #include<cstdio&g ...

  6. [luogu] P4551 最长异或路径(贪心)

    P4551 最长异或路径 题目描述 给定一棵\(n\)个点的带权树,结点下标从\(1\)开始到\(N\).寻找树中找两个结点,求最长的异或路径. 异或路径指的是指两个结点之间唯一路径上的所有边权的异或 ...

  7. Trie树(小)总结 By cellur925

    关于\(Trie\)树的详细介绍,还请移步这篇深度好文 基本操作 插入 void insert() { int p=0; int len=strlen(tmp+1); for(int i=1;i< ...

  8. 树链剖分好(du)题(liu)选做

    1.luogu P4315 月下"毛景树" 题目链接 前言: 这大概是本蒟蒻A掉的题里面码量最大的一道题了.我自认为码风比较紧凑,但还是写了175行. 从下午2点多调到晚上8点.中 ...

  9. [Luogu] 让我们异或吧

    https://www.luogu.org/problemnew/show/P2420 异或满足 A ^ B = B ^ A A ^ A = 0 0 ^ A = A #include <cstd ...

随机推荐

  1. starUML 2.5.1 for mac

    http://www.macupdate.com/app/mac/55571/staruml/download 一直在windows下使用 star UML,占用资源少,简洁易用. Mac下也能够用了 ...

  2. Error:全局变量不明白(using namespace std 与全局变量的冲突)

    在用递归写八皇后时,定义了一个全局变量count,结果出现故障例如以下:提示全局变量不明白. 最后发如今实现文件.cpp中.我使用了using  namespace std; 解决方法: 1.使用co ...

  3. 第三章、Tiny4412 U-BOOT移植三 时钟设置【转】

    本文转自:http://blog.csdn.net/eshing/article/details/37521789 这一章说明配置时钟频率基本原理 OK,接着说,这次先讲讲CPU的系统时钟.U-BOO ...

  4. codeforces 949B A Leapfrog in the Array

    B. A Leapfrog in the Array time limit per test 2 seconds memory limit per test 512 megabytes input s ...

  5. yistack

  6. Notepad++ - 通过语言格式设置自定义语法高亮颜色

    http://blog.csdn.net/onceing/article/details/51554399 Global Styles Indent guideline style  缩进参考线的颜色 ...

  7. E20170627-hm

    confirmation   n. 证实; 证明; 确认,

  8. jsp中session执行机制

  9. JQuery 记第N次被坑 - ajax请求字符集问题

    前言:两个功能差不多的页面,都是使用$.post()请求后台,页面A传递到后台的中文参数正常,页面B传递到后台的中文参数则为乱码 分析过程: ①使用chrome的开发者工具,分析两个页面的ajax请求 ...

  10. activity间传递参数

    传递值对象 值对象可以理解为自定义的数据类型对象. 为了完成这个知识点的讲解,先来创建一个User类型的类,它有name和age两个属性,然后请添加getter/setter方法,构造方法等基本方法. ...