社区讨论
关于Dij
学术版参与者 8已保存回复 9
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 9 条
- 当前快照
- 1 份
- 快照标识符
- @lo8tsxwu
- 此快照首次捕获于
- 2023/10/28 00:26 2 年前
- 此快照最后确认于
- 2023/10/28 00:26 2 年前
写挂了
CPP#include<bits/stdc++.h>
using namespace std;
#define float double
#define mian main
#define ture true
int n,grf[1001][1001],dis[1001];
int read()
{
int x=0,f=1;
char ch=getchar();
while(ch<'0'||ch>'9')
{
if(ch=='-')f=-1;
ch=getchar();
}
while(ch>='0'&&ch<='9')
{
x=x*10+ch-'0';
ch=getchar();
}
return x*f;
}
void write(int x)
{
if(x<0)
{
putchar('-');
x=-x;
}
if(x>9)write(x/10);
putchar(x%10+'0');
}
void dfs(int k)
{
for(int i=0;i<n;i++)
{
if(grf[k][i]!=0x3f3f3f3f)
{
dis[i]=min(dis[i],dis[k]+grf[k][i]);
dfs(i);
}
}
}
int main()
{
int m,u,v,q;
memset(grf,0x3f,sizeof(grf));
n=read();m=read();
for(int i=0;i<m;i++)
{
u=read();v=read();q=read();
grf[u][v]=q;
}
for(int i=0;i<n;i++)grf[i][i]=0;
dfs(0);
cout<<dis[n-1];
return 0;
}
回复
共 9 条回复,欢迎继续交流。
正在加载回复...