• 【luogu P3366 最小生成树】 题解 Prim


    include

    include

    include

    include

    using namespace std;
    const int maxn = 505000;
    int n, m, dis[maxn], vis[maxn], ans;
    struct edge{
    int from, to, next, len;
    }e[maxn<<2];
    int head[maxn], cnt;
    void add(int u, int v, int w)
    {
    e[++cnt].from = u;
    e[cnt].len = w;
    e[cnt].next = head[u];
    e[cnt].to = v;
    head[u] = cnt;
    }
    void Prim()
    {
    //for(int i = 1; i <= n; i++) dis[i] = 9999;
    memset(dis, 127, sizeof(dis));
    dis[1] = 0;
    for(int i = 1; i <= n; i++)
    {
    int k = -1, minn = 0x7fffffff;
    for(int j = 1; j <= n; j++)
    if(dis[j] < minn && !vis[j])
    {
    k = j;
    minn = dis[j];
    }
    if(k == -1)
    {
    ans = -1; break;
    }
    vis[k] = 1; ans += dis[k];
    for(int j = head[k]; j != -1; j = e[j].next)
    {
    int v = e[j].to;
    if(!vis[v] && dis[v] > e[j].len)
    dis[v] = e[j].len;
    }
    }
    }
    int main()
    {
    memset(head, -1, sizeof(head));
    scanf("%d%d",&n, &m);
    for(int i = 1; i <= m; i++)
    {
    int u, v, w;
    scanf("%d%d%d",&u, &v, &w);
    add(u, v, w), add(v, u, w);
    }
    Prim();
    if(ans == -1)
    {
    printf("orz ");
    return 0;
    }
    else
    {
    printf("%d ",ans);
    return 0;
    }
    }

  • 相关阅读:
    一、CentOS 7安装部署GitLab服务器

    四、指定Nginx启动用户
    三、Nginx支持php
    二、Nginx多站点配置(参考宝塔的)分析
    一、Nginx多站点配置
    一、PHP和Apache实现多用户自助建站
    Flask+uwsgi+Nginx+Ubuntu部署
    flask 上传头像
    flask 分页
  • 原文地址:https://www.cnblogs.com/MisakaAzusa/p/9607083.html
Copyright © 2020-2023  润新知