题解 AT4438 【[AGC028D] Chords】
令
把圆上看成序列上也可以,也就是说如果
考虑对于每个连通块,计算它对答案的贡献次数,加起来就是答案。
我们发现一个连通块在序列上一定对应了一个区间,满足连通块完全在这个区间内,而且区间端点属于连通块。
但是要注意并不是这个区间内全都是这个连通块,可能其中还有小连通块。
则令
枚举这个区间
如果区间内任意连边,那么方案数就是
其中
而
但是还有第二个条件,就是
有
最后求出所有
时间复杂度为
令
把圆上看成序列上也可以,也就是说如果
考虑对于每个连通块,计算它对答案的贡献次数,加起来就是答案。
我们发现一个连通块在序列上一定对应了一个区间,满足连通块完全在这个区间内,而且区间端点属于连通块。
但是要注意并不是这个区间内全都是这个连通块,可能其中还有小连通块。
则令
枚举这个区间
如果区间内任意连边,那么方案数就是
其中
而
但是还有第二个条件,就是
有
最后求出所有
时间复杂度为