• 耗时种数 (弗洛伊德算法 最短路)


    试题I:耗时种数 25’
    描述在这里插入图片描述

    输出
    输出一个整数答案

    样例
    输入复制
    4 5
    0 1 5
    0 2 5
    1 3 5
    1 0 5
    3 2 5
    输出复制
    2
    输入复制
    2 0
    输出复制
    0
    提示
    数据规模

    对于100%的数据,2≤n≤100,数据保证没有自环,可能有重边
    思路:典型的弗洛伊德算法 这里应注意的是 题目说了 会有重边 。

    #include <stdio.h>
    int n,m,dis[101][101],inf,a,b,c,ans[10005],Ans;
    int min(int x,int y)
    {
    	return x<y?x:y;
    }
    int main()
    {
    	inf=1e9;
    	scanf("%d%d",&n,&m);
    	for(int i=0;i<n;i++)
    	{
    		for(int j=0;j<n;j++)
    		{
    			if(i==j)
    				dis[i][j]=0;
    			else
    				dis[i][j]=inf;
    		}
    	}
    	for(int i=0;i<m;i++)
    	{
    		scanf("%d%d%d",&a,&b,&c);
    		dis[a][b]=min(dis[a][b],c);
    	}
    	for(int k=0;k<n;k++)
    	{
    		for(int i=0;i<n;i++)
    		{
    			for(int j=0;j<n;j++)
    			{
    				dis[i][j]=min(dis[i][j],dis[i][k]+dis[k][j]);
    			}
    		}
    	}
    	for(int i=0;i<n;i++)
    	{
    		for(int j=0;j<n;j++)
    		{
    			if(i!=j&&dis[i][j]!=inf&&!ans[dis[i][j]])
    			{
    				ans[dis[i][j]]=1;
    				Ans++;
    			}
    		}
    	}
    	printf("%d",Ans);
    	return 0;
    }
    
  • 相关阅读:
    CodeForces 450
    CodeForces 400
    CodeForces 1
    [HDU POJ] 逆序数
    [HDU 1166] 敌兵布阵
    [转] 树状数组学习
    关于1月4日到1月7日
    [HDU 1565+1569] 方格取数
    [POJ 1459] Power Network
    [转] 网络流算法--Ford-Fulkerson方法及其多种实现
  • 原文地址:https://www.cnblogs.com/fxzemmm/p/14847990.html
Copyright © 2020-2023  润新知