题目链接 双端队列跑边,颜色相同的边之间的花费为0,放进队首:不同的花费为1,放进队尾. 用Dijkstra+常数优化也能过 #include<bits/stdc++.h> using namespace std; typedef long long ll; ,mod=1e9+; int n,m,hd[N],ne,dp[N]; struct E {int v,c,nxt;} e[N]; void addedge(int u,int v,int c) {e[ne]= {v,c,hd[u]},hd…