写在前面
本周的专题训练主要包括并查集,线段树,树状数组
1001.畅通工程(HDOJ 1232)
题意
寻找矩阵中的非联通路个数
题解
并查集水题,套用模板即可:)
1002.敌兵布阵(HDOJ 1166)
题意
求解连续区间的和,并支持单点修改
题解
很符合线段树的特性,套用模板,并熟悉下递归的使用
1003.小希的迷宫(HDOJ 1232)
题意
判断无向图是不是有环
题解
并查集的一个小变种,每当在进行merge(合并)
操作前,利用find
操作检查下输入的两个点是不是具有同一个根来判断有没有出现环。最后注意剔除掉出现两个不同区域的情况
1004.Stars(HDOJ 1541)
题意
定义每个点左下角点的个数num(包括同一行与同一列但不包括自身)为level num,最后输出各个level的个数
题解
注意每个x,y都是按升序输入的,因此当前输入只与之前输入有关而无需等输入完再进行处理,单点更新等特性符合树状数组的一类用法,理解题意后用模板就可以了(用线段树应该也是可以的)
1005.Inversion(HDOJ 5497)
题意
在一段数字序列中剔除掉某个连续序列,求其中最小的一个逆序数
题解
在此之前推荐可以先看看怎么用树状数组求逆序数,对于这道题可以用两个树状数组来求解,一个树状数组维护剔除序列前面的数的逆序数,另一个用于维护剔除序列后面的逆序数 ,推荐这个
传送门