zoukankan      html  css  js  c++  java
  • 2017 9 11 noip模拟赛T2

    #include<cstdio>
    #include<cstring>
    #include<algorithm>
    using namespace std;
    const int N=205;
    int map[N][N];
    int d[N],tag[N],book[N],f[N];
    int n,m;
    void work(int x)
    {
        memset(d,63,sizeof(d));
        memset(book,0,sizeof(book));
        memset(f,0,sizeof(f));
        d[x]=0;
        for(int i=1;i<=n;i++)
        {
            int minx=2*1e9,t=0;    
            for(int j=1;j<=n;j++)
                if(!book[j]&&d[j]<minx) minx=d[j],t=j;    
            book[t]=1;
            for(int j=1;j<=n;j++)
                if(!book[j])
                {
                    if(d[j]>d[t]+map[t][j]) d[j]=d[t]+map[t][j],f[j]=t;
                    else if(d[j]==d[t]+map[t][j]) f[j]=0;
                }
        }
    //    printf("
    ");
        for(int i=1;i<=n;i++) if(f[i]&&f[i]!=x) tag[f[i]]=1;
    //    for(int i=1;i<=n;i++) printf("%d ",f[i]);
    //    printf("
    ");
    }
    int main()
    {
        freopen("city.in","r",stdin);
        freopen("city.out","w",stdout);
        memset(map,63,sizeof(map));
        scanf("%d %d",&n,&m);
        int a,b,c;
        for(int i=1;i<=m;i++)
        {
            scanf("%d %d %d",&a,&b,&c);
            map[a][b]=map[b][a]=min(map[a][b],c);
        }
        for(int i=1;i<=n;i++) work(i);
        int flag=0;
        for(int i=1;i<=n;i++)
        {
            if(tag[i]) flag=1,printf("%d ",i);
        }
        if(flag==0) printf("No important cities.
    ");
        return 0;    
    }
    View Code

    look look :

     noip模拟赛?#16T2

  • 相关阅读:
    Go 解析JSON
    查看端口占用并结束进程
    DNS
    u盘禁用
    主机规划与磁盘分区
    响应式设计初识
    SVG基础
    BootStrap入门
    python中 "is"和"=="的区别
    关于C++模板不能分离编译的问题思考
  • 原文地址:https://www.cnblogs.com/12fs/p/7514641.html
Copyright © 2011-2022 走看看