8.16 总结
T1
今天的败笔。
注意到两点之间距离的奇偶性,等于它们到根的距离和的奇偶性。
那么三个点之间的距离奇偶性相同,等价于三个点到根的距离的奇偶性相同。
统计到根的距离为奇/偶的点的个数,求选三个点的方案数即可。
T2
把黑点删掉以后,会形成若干个仅由红点组成的连通块。
对于一个黑点来说,走到与它相邻的连通块中任意一个点的路径都不会再经过另外的黑点。这是一种合法路径。
显然将两条这样的路径拼起来也是合法的。
那么统计连通块中点的个数,枚举黑点,统计与它相邻的连通块的路径个数即可。
T3
发现删边不好维护删掉的连通块,考虑反过来加边。
对于一个点,它的存活时间是它被删掉之后第一次 GC
的时间。
倒着维护操作,维护 \(lst\) 表示上次 GC
的时间,加边时,若连通块第一次与 \(1\) 联通,那么这个连通块里的点的存活时间都为 \(lst\)。
如果最后还有点不连通,存活时间就为最后的 \(lst\)。
T4
题意可转化为给边定向,使得强连通分量个数最少。
注意到对答案有贡献的连法只有三种:正三角、倒三角和沙漏形。
这三种连法都是右下->左上,右上->左下。所以我们要尽量让这两种边交叉。
将每条边按 \(x\) 升序、\(y\) 降序排序,如果能与之前的边交叉就往上连,否则就往下连,这样就能尽可能让它们交叉。
最后跑一遍 tarjan 就好。