zoukankan      html  css  js  c++  java
  • 耗时种数 (弗洛伊德算法 最短路)

    试题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;
    }
    
  • 相关阅读:
    EL表达式 与 servlvet3.0的新规范
    回调函数
    结构体
    指针函数 和 函数指针
    BCC校验(异或和校验)
    stm32 USART串口通信
    stm32 中断
    Systick系统滴答定时器
    stm32f7 时钟
    按键连按和不连按
  • 原文地址:https://www.cnblogs.com/fxzemmm/p/14847990.html
Copyright © 2011-2022 走看看