1 条题解

  • 0
    @ 2026-7-7 19:30:59

    等一下你好像也没告诉我这个是有向图吧?

    #include<bits/stdc++.h>
    using namespace std;
    #define int long long
    const int N=2e5+10;
    int dp[N],a[N];
    struct node{int x,y,c;}e[N];
    signed main()
    {
    	int n,m,k;cin>>n>>m>>k;
    	for(int i=1;i<=m;i++)cin>>e[i].x>>e[i].y>>e[i].c;
    	for(int i=1;i<=k;i++)cin>>a[i];
    	memset(dp,0x3f,sizeof(dp));dp[1]=0;
    	for(int i=1;i<=k;i++)
    	{
    		int x=e[a[i]].x,y=e[a[i]].y,w=e[a[i]].c;
    		dp[y]=min(dp[y],dp[x]+w);
    	}
    	cout<<(dp[n]==0x3f3f3f3f3f3f3f3f?-1:dp[n]);
    	return 0;
    }
    • 1

    信息

    ID
    10030
    时间
    2000ms
    内存
    1024MiB
    难度
    10
    标签
    递交数
    5
    已通过
    3
    上传者