算法六:等式

这篇博客介绍了一种算法,用于判断在给定的变量和等式或不等式约束条件下是否存在满足所有条件的赋值方案。通过使用并查集数据结构,可以有效地合并相等集合和检查元素是否属于同一集合。博客提供了具体实现的C++代码,并通过样例数据解释了算法的正确性。
摘要由CSDN通过智能技术生成

免费版:算法六:等式

描述

有n个变量和m个“相等”或“不相等”的约束条件,请你判定是否存在一种赋值方案满足所有m个约束条件。

输入

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

接下来会有T组数据,对于每组数据:

第一行是两个整数n,m,表示变量个数和约束条件的个数。

接下来m行,每行三个整数a,b,e,表示第a个变量和第b个变量的关系:

  • 若e=0则表示第a个变量不等于第b个变量;
  • 若e=1则表示第a个变量等于第b个变量

输出

输出T行,第i行表示第i组数据的答案。若第i组数据存在一种方案则输出"Yes";否则输出"No"(不包括引号)。

输入样例

2 (有两组数据)
5 5 (5个变量,5个约束条件)
1 2 1 (第1个变量=第2个变量)
2 3 1
3 4 1
1 4 1
2 5 0(第2个变量!=第5个变量)
3 3
1 2 1
2 3 1
1 3 0
<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值