0
点赞
收藏
分享

微信扫一扫

有边数限制的最短路


题目:

有边数限制的最短路_图论


题解:

bellman_ford算法

#include <bits/stdc++.h>
using namespace std;
struct node {
int a,b,c;
}e[10005];
int dis[10005];
int back[10005];
int n,m,k;
int inf=0x3f3f3f3f;
void bellman_ford()
{
memset(dis,0x3f,sizeof(dis));
dis[1]=0;
for(int i=0;i<k;i++)
{
memcpy(back,dis,sizeof(dis));
for(int j=1;j<=m;j++)
{
int a=e[j].a,b=e[j].b,c=e[j].c;
dis[b]=min(dis[b],back[a]+c);
}
}
if(dis[n]>inf/2) cout<<"impossible"<<endl;
else cout<<dis[n]<<endl;
}
int main()
{
cin>>n>>m>>k;
for(int i=1;i<=m;i++)
{
cin>>e[i].a>>e[i].b>>e[i].c;
}
bellman_ford();
return 0;
}


举报

相关推荐

0 条评论