蒟蒻67分 wa了3.5.6三个点 不知道错在哪了呜呜 求犇犇帮助
  • 板块P1807 最长路
  • 楼主Ayyyarr
  • 当前回复1
  • 已保存回复1
  • 发布时间2021/10/8 17:10
  • 上次更新2023/11/4 04:20:47
查看原帖
蒟蒻67分 wa了3.5.6三个点 不知道错在哪了呜呜 求犇犇帮助
135419
Ayyyarr楼主2021/10/8 17:10
#include<bits/stdc++.h>

using namespace std;

struct st{
	int next;
	int v;
};

int n,m;
vector<st > vt[1505];
int in[1505];
queue<int > q;
int num[1505];

void tp(){
	int cur;
	q.push(1);
	int nex,val;
	while(!q.empty()){
		cur = q.front();
		q.pop();
		for(int i = 0 ; i < vt[cur].size(); i++){
			nex = vt[cur][i].next;
			val = vt[cur][i].v;
			in[nex]--;
			if(num[cur] + val > num[nex]) num[nex] = num[cur] + val;
			if(!in[nex]) q.push(nex);
		}
	}
	if(num[n]) cout << num[n];
	else cout << -1;
}

int main(){
	int u,v,va;
	cin >> n >> m;
	for(int i = 1; i <= m ; i++){
		scanf("%d%d%d",&u,&v,&va);
		in[v]++;
		vt[u].push_back((st){v,va});
		
	}
	tp();
	return 0;
} 
2021/10/8 17:10
加载中...