P3199 [HNOI2009]最小圈

01分数规划+判负环

新技巧:dfs判负环,好像在仅要判负环时由于bfs?

bool spfa(int x){
    v[x]=1;
    for(int i=head[x];i;i=nxt[i]){
        int y=ver[i];
        if(dis[y]<dis[x]+edge[i]){
            dis[y]=dis[x]+edge[i];
            if(v[y]||spfa(y)) return 1;
        }
    }
    vis[x]=0;
    return 0;
}
原文地址:https://www.cnblogs.com/Hikigaya/p/11677599.html