zoukankan      html  css  js  c++  java
  • FZU 2271 floyd

    FZU-2271

    题意:
    无向图,无自环,问最多可以删除多少条边,使得任意两点间的最短路长度都不变。
    tags:
    floyd 判一下,如果两点(u,v)之间可通过一点 k 松驰,那就记录 (u,v) 有中间点 k ,那么边 (u,v) 就不可取。

    //https://vjudge.net/problem/FZU-2271#author=Purity
    #include<iostream>
    #include<cstdio>
    #include<cstdlib>
    #include<algorithm>
    #include<cstring>
    #include<string>
    #include<cmath>
    #include<queue>
    #include<stack>
    #include<map>
    #include<bitset>
    #include<vector>
    #include<set>
    using namespace std;
    #pragma comment(linker, "/STACK:102400000,102400000")
    #define rep(i,a,b) for (int i=a; i<=b; ++i)
    #define per(i,b,a) for (int i=b; i>=a; --i)
    #define mes(a,b)  memset(a,b,sizeof(a))
    #define INF 0x3f3f3f3f
    #define MP make_pair
    #define PB push_back
    #define fi  first
    #define se  second
    typedef long long ll;
    const int N = 105;
    
    int n, m, dis[N][N], path[N][N];
    void Init() {
        mes(dis, INF); rep(i,0,N-1) dis[i][i]=0;
        mes(path, -1);
    }
    int main()
    {
        int T;  scanf("%d", &T);
        rep(cas, 1, T)
        {
            Init();
            scanf("%d%d", &n, &m);
            int x, y, z;
            rep(i,1,m)
            {
                scanf("%d%d%d", &x, &y, &z);
                dis[x][y] = dis[y][x] = min(dis[x][y], z);
                path[x][y] = path[y][x] = y;
            }
            rep(k,1,n)
                rep(i,1,n) rep(j,1,n)
                    if(k!=i && k!=j && i!=j) {
                        if(dis[i][j] >= dis[i][k]+dis[k][j]) {
                            dis[i][j] = dis[i][k]+dis[k][j];
                            path[i][j] = k;
                        }
                    }
            int ans = 0;
            rep(i,1,n) rep(j,i+1,n)
                if(path[i][j]==i || path[i][j]==j)
                    ++ans;
            printf("Case %d: ", cas);
            printf("%d
    ", m-ans);
        }
    
        return 0;
    }
    
  • 相关阅读:
    Eureka 服务的注册和发现
    springcloud 中文文档
    mysql 7 种 join
    通用 mapper
    docker 容器操作( 以 tomcat 为例 )
    linux下安装phpunit简单方法
    图片优化的几个小工具
    安装基准测试工具sysbench
    安装pcntl以实现php多进程
    安装memcache及php的memcached模块
  • 原文地址:https://www.cnblogs.com/sbfhy/p/9011398.html
Copyright © 2011-2022 走看看