洛谷P1807 最长路
洛谷P1807 最长路
#include<bits/stdc++.h>
#define int long long
using namespace std;
const int inf=-1e6;const int maxx=2550005;
int n,m,head,tail,g[1505][1505],q[maxx];
int dp[1505];bool flag[1505];//flag记录点是否在队内
signed main(){
cin>>n>>m;
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++)
g[i][j]=inf;
dp[i]=inf;
}
int t1=0,t2=0,tmp=0;
for(int i=1;i<=m;i++){
cin>>t1>>t2>>tmp;
g[t1][t2]=max(g[t1][t2],tmp);
}
q[++tail]=1;head++;dp[1]=0;
while(head<=tail){
for(int i=1;i<=n;i++){
if(g[q[head]][i]!=inf){
dp[i]=max(dp[i],dp[q[head]]+g[q[head]][i]);
if(!flag[i]) q[++tail]=i,flag[i]=true;
}
}
flag[q[head]]=false;head++;
}
if(dp[n]==inf) cout<<-1<<endl;
else cout<<dp[n]<<endl;
return 0;
}
进食后人:
1、可能有多个点入度为0(不过我写的是SPFA,这并不影响)
2、可能存在重边(两点间有多个权值不同的边相连),要取最大边权(因为我懒得写链式前向星所以直接用了邻接矩阵,然后被hack了,,)
3、如果你82pts&&hacked on#3#9,别忘了无法到达时输出-1
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
· SQL Server 2025 AI相关能力初探
· 为什么 退出登录 或 修改密码 无法使 token 失效