货物运输

在这里插入图片描述

解析

首先明确题意:只要经过的每条边权值不超过 l 就行。因为城市可以无限量加油。

这题不需在线,可以离线解决。把边和询问的信息都保存下来,按照边权 w 对边排序,按照询问的 l 对询问排序。 这样,解决的较小的 l,对较大的询问也有帮助。

建立并查集。对于每个询问 i,找出若干条边 j 使得 ajli 每合并两个节点,如果它们不在一个连通块内,ans 就减去原来两个独立的集合内的组合,加上联通后的集合的节点组合。公式如下。

Cn2=n×(n1)2

对于每个排序过后的询问都应当保存原始下标。找回原始询问编号保存答案即可。

也有大神说:“是否强制在线对这种做法其实没有影响吧,边权离散化之后可以直接预处理出所有答案。”

代码


All Rights Reserved 2022 Wang Zhanrui