看到这场提交记录时,感觉回忆了一遍自己的 OI 史。
说正事,这种分形的题目一般都有很明确的思考方向,稍微复杂一点的分形它绝对不可能从内部形态给你下手,这样是做不了的,得通过外部拼接部分形态转移来做。
我们考虑这么一件事情,题目为什么要给我们连通块个数为 \(1\) 这个限制?本质上就是要我们在拼接的过程中无需考虑其内部连通性,从而只需考虑从小到大的过程,不必递归处理子问题。
考虑办掉一些特殊情况,比如上下左右拼接都连通或者都不连通,这样答案是好求的。
然后此时只有上下或者左右拼接会使得连通块连通,计算连通块数量,考虑点边容斥,点数减去边数,点数显然每次是平方的,边数这一块,其实只需要计算拼接时有的那一边就 OK 了,因为反正另一个方向不连通。
考虑计算连通方向的边数,发现其与拼接时相邻黑色对数是有关的,可以记一下这个东西,发现这些变量与上一个分形变量有线性关系,尝试构造矩阵快速算出这个东西即可。
