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

原文地址:https://www.cnblogs.com/Xxhdjr/p/14859888.html