社区讨论
求救P1807
P1807最长路参与者 1已保存回复 0
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 0 条
- 当前快照
- 1 份
- 快照标识符
- @mhjuf1yb
- 此快照首次捕获于
- 2025/11/04 08:40 4 个月前
- 此快照最后确认于
- 2025/11/04 08:40 4 个月前
CPP
#include<bits/stdc++.h>
using namespace std;
vector<int>p[1505];
vector<int>v[1505];
int id[1505];
queue<int>q;
long long f[1505];
int main(){
//freopen("P1807_1.in","r",stdin);
int n,m;
cin>>n>>m;
for(int i=1;i<=m;i++){
int x,y,k;
cin>>x>>y>>k;
id[y]++;
p[x].push_back(y);
v[x].push_back(k);//路线长度
}
memset(f,-0x3f,sizeof(f));//初始化
// for(int i=1;i<=n;i++){
// if(!id[i]){
// q.push(i);
// f[i]=0;
// }
// }
f[1]=0;
q.push(1);
while(!q.empty()){
int x=q.front();
q.pop();
for(int i=0;i<p[x].size();i++){
int y=p[x][i];
id[y]--;
f[y]=max(f[y],v[x][i]+f[x]);//更新
if(!id[y]){
q.push(y);
}
}
}
if(f[n]<0){
cout<<-1;
}else{
cout<<f[n];
}
return 0;
}
测试点1,2,5,7,8过不了
回复
共 0 条回复,欢迎继续交流。
正在加载回复...