社区讨论
蒟蒻求助 SPFA
P1807最长路参与者 2已保存回复 18
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 18 条
- 当前快照
- 1 份
- 快照标识符
- @lq93670z
- 此快照首次捕获于
- 2023/12/17 14:08 2 年前
- 此快照最后确认于
- 2023/12/17 16:13 2 年前
只对了五个点(ac46) 悬棺
蒟蒻的代码
CPP#include <iostream>
#include <cstring>
#include <queue>
using namespace std;
int n,m;
int a[1510][1510];
int d[1510];
bool f[1510];
void spfa()
{
for(int i=1;i<=n;i++) d[i]=-1e9;
queue<int> q;
q.push(1);
d[1]=0;
while(!q.empty())
{
int u=q.front();
for(int i=1;i<=n;i++)
{
if(d[u]+a[u][i]>d[i]&&a[u][i]!=0)
{
d[i]=d[u]+a[u][i];
if(!f[i])
{
f[i]=true;
q.push(i);
}
}
}
q.pop();
f[u]=false;
}
}
int main()
{
scanf("%d %d",&n,&m);
for(int i=1;i<=m;i++)
{
int u,v,l;
scanf("%d %d %d",&u,&v,&l);
a[u][v]=l;
}
spfa();
if(d[n]!=-1e9) printf("%d",d[n]);
else printf("-1");
return 0;
}
题目:p1807
回复
共 18 条回复,欢迎继续交流。
正在加载回复...