我是真不理解#5#6不TLE,给我来MLE,太6了
#include<bits/stdc++.h>
using namespace std;
int n,m,u,v,w,ans=-1;
vector<short> p1[1501],p2[1501];//p1是连接的点,p2是权值
int p[1501];//连接条数
bool h[1501];//BFS防止重复连接数组
queue<short> q,q1;
void BFS(){
q.push(1);//初始点
q1.push(0);
while(q.empty()){
memset(h,0,sizeof(h));//清空
for(short i=0;i<q.size();i++){
for(short j=0;j<p[q.front()];j++){
if(p1[q.front()][j]==n) ans=max(ans,q1.front()+p2[q.front()][j]);
else{
if(!h[p1[q.front()][j]]){//如果没有加入过
q.push(p1[q.front()][j]);
q1.push(q1.front()+p2[q.front()][j]);
}
}
}
q.pop();//out
q1.pop();
}
}
}
int main(){
cin>>n>>m;
for(short i=0;i<m;i++){
cin>>u>>v>>w;
p1[u].push_back(v);
p2[u].push_back(w);
p[u]++;
}
BFS();//防伪标识
cout<<ans<<endl;
}