[vp]ARC061
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:\)看完题解再补。。