题解 P3547 【[POI2013]CEN-Price List】
\texttt{Solution}
考虑最短路的形式
显然只有3种情况:
全a,全b(末尾有1个a),全b(通过多走几条边使得完全去除a边)
第一种对应
前两种情况我们容易处理,跑一边bfs即可(0/1最短路)
最后一种情况我们考虑类似0/1最短路的转移
记
当用点
枚举
这个做法的复杂度为
我们考虑我们第二次枚举的边
事实上该条边作为第二条枚举的边有效更新只有这一次,实现时我们可以在边集中删去它
原因是考虑之后的点
考虑只有3元环被遍历时不会删去边,每个三元环只会被遍历
故复杂度为
代码