【带权并查集】POJ1182 [NOI2001]食物链

本文详细介绍了如何使用带权并查集解决NOI2001的题目食物链,讨论了权值的定义及其在模3意义下的关系传递性。通过权值的加减运算,阐述了解决此类问题的关键步骤,包括集合合并时权值的修改,并提供了相应的代码实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

题面在这里

这是一道经典的带权并查集例题。
我们定义权值s[i]表示节点i与根的关系:
0:和根是同一种动物
1:i能够吃根节点
2:i被根节点吃
这样定义的好处就是,在模3的意义下,各个节点之间的关系能够传递
(接下来本题解所讨论的范围都是在模3的意义下)
例如:
这里写图片描述
这样我们的权值s[i]就能满足一维向量加法了。

那么很显然,s[i]也满足一维向量减法:
这里写图片描述
a与b的关系就是s[a]-s[b]

再来考虑如何解此题:
若给出的X,Y未确定关系(X,Y拥有不同的根)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值