逐至 2021-04-07 09:35 采纳率: 100%
浏览 113
已采纳

算法题,进链接看文本,不限语言c/c++/python都可以,伪代码也行,请会的留下代码最好带下注释


链接: https://pan.baidu.com/s/1vEu6L27XAzdgkUOuOE-38g

提取码: 1ksf

  • 写回答

3条回答 默认 最新

  • 一切因为有你 2021-04-07 20:11
    关注
        #include <stdio.h>
        int main()
        {
            int e[10][10],dis[10],book[10],i,j,n,m,t1,t2,t3,u,v,min;
            int inf=-99999999; //用inf(infinity的缩写)存储一个我们认为的负无穷值
            //读入n和m,n表示顶点个数,m表示边的条数
            scanf("%d %d",&n,&m);
    
            //初始化
            for(i=1;i<=n;i++)
                for(j=1;j<=n;j++)
                    if(i==j) e[i][j]=0;
                      else e[i][j]=inf;
    
            //读入边
            for(i=1;i<=m;i++)
            {
                scanf("%d %d %d",&t1,&t2,&t3);
                e[t1][t2]=t3;
            }
            //初始化dis数组,这里是1号顶点到其余各个顶点的初始路程
            for(i=1;i<=n;i++)
                dis[i]=e[1][i];
            //book数组初始化
            for(i=1;i<=n;i++)
                book[i]=0;
            book[1]=1;
    
            //Dijkstra算法核心语句
            for(i=1;i<=n-1;i++)
            {
                //找到离1号顶点最近的顶点
                min=inf;
                for(j=1;j<=n;j++)
                {
                    if(book[j]==0 && dis[j]>min)
                    {
                        min=dis[j];
                        u=j;
                    }
                }
                book[u]=1;
                for(v=1;v<=n;v++)
                {
                    if(e[u][v]>inf)
                    {
                        if(dis[v]<dis[u]*e[u][v])
                            dis[v]=dis[u]*e[u][v];
                    }
                }
            }
    
            //输出最终的结果
            for(i=1;i<=n;i++)
                printf("%d ",dis[i]);
    
            getchar();
            getchar();
            return 0;
        }
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?
  • ¥15 c++头文件不能识别CDialog