幻听嵩的留香 2023-08-31 11:00 采纳率: 66.7%
浏览 5

洛谷p1359题,一道模板求最短路径的题,没写出来,请各位道友看一下代码

img


上述题目
我用的dijkstra算法:

img

img


我的代码输出不了,估计中间有地方错了

#include<stdio.h>
#define INF 37628
void Dijkstra(int **a,int dist[],int v,int n)
{    
      int mark[201];    
       int i,j,min,x;
       for(i=0;i<=n;i++)
    {
        mark[i]=0;
        dist[i]=*((int *)a+n*v+j);
    }
    mark[v]=1;
    for(i=1;i<n;i++)
    {
        min=INF;
        for(j=1;j<=n&&mark[j]==0;i++)    
        if(dist[j]<min)
        {
                min=dist[j];
                x=j;         
            }
        mark[x]=1;
        for(j=1;j<=n&&mark[j]==0;j++)
            if(dist[j]>dist[x]+*((int *)a+n*x+j)&&*((int *)a+n*x+j)<INF)
                dist[j]=dist[x]+*((int *)a+n*x+j);
    }
}
int main()
{
    int n,i,j;
    scanf("%d",&n);
    int edge[201][201];
    for(i=0;i<=n;i++)
        for(j=0;j<=n;j++)    
        edge[i][j]=INF;
    for(i=1;i<n;i++)
        for(j=i+1;j<=n;j++)
            scanf("%d",edge[i]+j);
    int dist[201];    
        Dijkstra((int **)edge,dist,1,n);
    printf("%d\n",dist[n]);
}
  • 写回答

3条回答 默认 最新

  • 卜阳428 2024-04-17 10:53
    关注

    这个用区间dp或者图论dijkstra都可以写出来,爸爸

    评论

报告相同问题?

问题事件

  • 创建了问题 8月31日

悬赏问题

  • ¥50 Qt5.14.2怎样使用qlistwidget存储指针类数据并更新?
  • ¥15 STM32多路复用器ADC采样
  • ¥20 Linux(ubuntu)操作相关问题
  • ¥15 python深度学习代码求跑
  • ¥100 对接美团闪购医药接口相关问题
  • ¥15 嵌入式软件电子烟开发
  • ¥15 职场 Excel 查重问题
  • ¥15 求怎么用idea2021.3.2创建web项目并配置tomcat
  • ¥100 or-tools的相关问题
  • ¥15 有可能用平板通过拓展坞来烧录程序吗(keil5的那种)