• 【luogu P1186 玛丽卡】 题解


    题目链接:https://www.luogu.org/problemnew/show/P1186
    邻接表开大开小真的奇妙,毒瘤玩意,再您妈的见。

    #include <queue>
    #include <cstdio>
    #include <cstring>
    #include <iostream>
    #include <algorithm>
    using namespace std;
    const int maxn = 1010;
    const int inf = 2139062143;
    struct edge{
        int len, from, to, next;
    }e[1000001];
    int head[maxn], dis[maxn], n, m, cnt, u, v, w, ans, s, cut[maxn][maxn], f[maxn];//f[]记录路径
    bool vis[maxn], flag;
    queue<int> q;
    void add(int u, int v, int w)
    {
        e[++cnt].from = u;
        e[cnt].len = w;
        e[cnt].to = v;
        e[cnt].next = head[u];
        head[u] = cnt;
    }
    int SPFA()
    {
        queue<int> q;
        memset(vis,0,sizeof(vis));
        memset(dis,0x3f3f3f3f,sizeof(dis));
        vis[1] = 1;
        q.push(1);
        dis[1] = 0; 	
        while(!q.empty())
        {
            int now = q.front();
            q.pop();
            vis[now] = 0;
            for(int i = head[now]; i ; i = e[i].next)
            {
                if(cut[now][e[i].to] == 0&&dis[e[i].to] > dis[now]+e[i].len)
                {
                	if(!flag) f[e[i].to] = now;
                    dis[e[i].to] = dis[now]+e[i].len;
                    if(!vis[e[i].to])
                    {
                        vis[e[i].to] = 1;
                        q.push(e[i].to);
                    }
                }
            }
        }
    }
    int main()
    {
        scanf("%d%d",&n,&m);
        memset(dis,0x7f,sizeof(dis));
        for(int i = 1; i <= m; i++)
        {
            scanf("%d%d%d",&u,&v,&w);
            add(u,v,w);
            add(v,u,w);
        }
        SPFA();
        flag = 1;
        for(int i = n; i != 1; i = f[i])
        {
            cut[f[i]][i] = 1;
            cut[i][f[i]] = 1;
            SPFA();
            cut[f[i]][i] = 0;
            cut[i][f[i]] = 0;
            ans = max(dis[n], ans);
        }
        printf("%d
    ",ans);
        return 0;
    }
    

    隐约雷鸣,阴霾天空,但盼风雨来,能留你在此。

    隐约雷鸣,阴霾天空,即使天无雨,我亦留此地。

  • 相关阅读:
    时间操作
    2021.10.9数据结构实验课作业
    2021.9.28数据结构实验课作业
    2021.9.15数据结构实验课作业
    2021.9.7数据结构实验课作业
    苹果ios开发,CocoaPods安装方法-2021/9/11
    写组件库文档常用的技术
    document.execCommand 的用法
    手写JSON.stringify
    Object常用方法
  • 原文地址:https://www.cnblogs.com/MisakaAzusa/p/9212617.html
Copyright © 2020-2023  润新知