蒟蒻46分BFS求助
  • 板块P1807 最长路
  • 楼主tdp2011
  • 当前回复5
  • 已保存回复5
  • 发布时间2024/4/5 16:50
  • 上次更新2024/4/5 19:35:34
查看原帖
蒟蒻46分BFS求助
1011639
tdp2011楼主2024/4/5 16:50

一开始用的DFS拿了64分,改成BFS之后变成46分了T^T

最近做题做哭了

以下46分代码:

#include<iostream>
#include<vector>
#include<cmath>
using namespace std;

struct edge{
	int to,d;
};
vector<edge> p[50005];
int n,m;
int q[50005],d[50005],l=1,r=2,ans=0;
bool flag1=0;
int main(){
	cin>>n>>m;
	for(int i=1;i<=m;i++){
		int u,v,w;
		cin>>u>>v>>w;
		p[u].push_back((edge){v,w});
	}
	while(l<r){
		for(int i=0;i<p[l].size();i++){
			q[r]=p[l][i].to;
			d[r]=p[l][i].d+d[l];
			if(q[r]==n){
				ans=max(ans,d[r]);
				flag1=1;
			}
			r++;
		}
		l++;
	}
	if(!flag1) cout<<-1;
	else cout<<ans;
		
	return 0;
}

2024/4/5 16:50
加载中...