10pts求调
查看原帖
10pts求调
713562
hahaxiang楼主2023/1/1 22:03
#include<bits/stdc++.h>
#define int long long
using namespace std;
int n,m;
int u[70001],v[70001],w[70001];
int dis[3001];
vector<int>a[3001];
signed main()
{
	std::ios::sync_with_stdio(false);
	cin.tie(0);
	cout.tie(0);
	cin>>n>>m;
	for(int i=1;i<=m;i++)
	{
		cin>>u[i]>>v[i]>>w[i];
	}
	for(int i=1;i<=n;i++)
	{
		int num;
		cin>>num;
		for(int j=1;j<=num;j++)
		{
			int k;
			cin>>k;
			a[i].push_back(k);
		}
	}
	for(int i=1;i<=n;i++)
	{
		dis[i]=1e14;
	}
	dis[1]=0;
	for(int i=1;i<=n-1;i++)
	{
		for(int j=1;j<=m;j++)
		{
			dis[v[j]]=min(dis[v[j]],dis[u[j]]+w[j]);
		}
	}
	for(int i=1;i<=n-1;i++)
	{
		for(int j=1;j<=n;j++)
		{
			for(int k=0;k<a[j].size();k++)
			{
				dis[j]=max(dis[j],dis[a[j][k]]);
			}
		}
	}
	cout<<dis[n];
	return 0;
}

用bellman-fold的思路,更新这个城市的时间只需遍历n-1次即可,但是交上去wa了,求调

2023/1/1 22:03
加载中...