ybtoj 躲避拥挤 并查集
题目
样例
数据范围
解题
乍一看是图,但是并查集。其实画个图就知道了
用微软白板画的,鼠标作画。 可以看到3和5之间是5705的人气值,当询问6000时,就会有 (5,3)和(3,5)这两个组合满足题目条件,像这种求连通的题呢,就可以用并查集了,不难发现,3和5一开始属于两个并查集,但满足条件之后贡献出了两个答案,那么3和5这个并查集与2这个并查集合并之后的贡献是多少呢? 是2乘1再考虑反方向走再乘2对吧,所以现在就有了6个答案(2+4)。 但是这题如果每次询问都去重做一遍,可能会爆掉,所以考虑离线做法,具体看代码
代码
#include
using namespace std;
int fa [400086];//fa[i]是i的大哥
int cnt[400086];//cnt[i]是i的帮派规模
int result=0;//单次结果
int ans
ybtoj 躲避拥挤 并查集最先出现在Python成神之路。
共有 0 条评论