dijkstra求助
查看原帖
dijkstra求助
929529
wym_2012楼主2024/1/7 11:38
#include<bits/stdc++.h>
using namespace std;
const int maxn=1e4+9,fail=(1<<31)-1;
int n,m,s;
struct node{
	int to,val;
};
vector<node>v[maxn];
int dis[maxn];
bool vis[maxn];
void dijkstra()
{
	for(int i=1;i<=n;i++)
		dis[i]=fail;
	dis[s]=0;
	vis[s]=true;
	for(int i=0;i<v[s].size();i++)
	{
		int t=v[s][i].to,w=v[s][i].val;
		dis[t]=min(dis[t],w);
	}
	for(int k=1;k<n;k++)
	{
		int mi=fail,u;
		for(int i=1;i<=n;i++)
		{
			if(mi>dis[i]&&!vis[i])
			{
				mi=dis[i];
				u=i;
			}
		}
		vis[u]=true;
		for(int i=0;i<v[u].size();i++)
		{
			int y=v[u][i].to,w=v[u][i].val;
			if(dis[y]>dis[u]+w)
				dis[y]=dis[u]+w;
		}
	}
	for(int i=1;i<=n;i++)
		cout<<dis[i]<<" ";
}
int main()
{
	cin>>n>>m>>s;
	while(m--)
	{
		int u,v,w;
		cin>>u>>v>>w;
		v[u].push_back({v,w});//这里报错
	}
	dijkstra();
	return 0;
}

报错结果如下蒟蒻看不懂

[Warning] integer overflow in expression [-Woverflow]
In function 'int main()':
[Error] invalid types 'int[int]' for array subscript

悬关

2024/1/7 11:38
加载中...