https://atcoder.jp/contests/arc061
(A):暴力
(B):每个黑点会对周围九个矩阵产生(1)的贡献。
(C):
妙妙建图题
首先有个很骚的点边互换,这样就只关心两个点之间的颜色了,。
因为无向图,所以要正反分别建点。
因为没有边终点,要建两个超级源汇点(S,T)
发现会被菊花图卡成(O(n^2)),考虑继续优化。
我们对于原图中的每个点(u)也建虚点,
再把所有连向(u)的颜色,连向虚点,双向的,入边权为(1),出边权(0)(换乘的代价)。
最后在新图上跑最短路,因为边权只有(0,1),(bfs)即可。
点数总共(2m+n+2)个,边数至多(m+2n)。
(D:)看完题解再补。。