重写Dijkstra
2024-10-20 16:17:51
啊我沙雕了,竟然以为DJ的邻接矩阵不用初始化。。
#include<bits/stdc++.h>
#define R register int
using namespace std;
//const int inf=0x3f3f3f3f;
inline int read()
{
int x=,f=;char ch=getchar();
while(ch<''||ch>'') if(ch=='-') f=-,ch=getchar();
while(ch>=''&&ch<='') x=(x<<)+(x<<)+ch-'',ch=getchar();
return x*f;
}
int n,m,a[][],dis[],inf;
bool vis[];
inline void Run()
{
memset(dis,0x3f,sizeof(dis));
inf=dis[];
dis[]=;
for(R i=;i<n;i++)
{
int x=;
for(R j=;j<=n;j++)
{
if((!vis[j])&&(x==||dis[j]<dis[x]))
x=j;
}
vis[x]=;
for(R k=;k<=n;k++)
//if(a[x][k])
dis[k]=min(dis[k],dis[x]+a[x][k]);
}
}
int main()
{
n=read();m=read();
for(R i=;i<=n;i++)
for(R j=;j<=n;j++)
if(i==j) a[i][j]=;
else a[i][j]=0x3f3f3f3f;//初始化
for(R i=;i<=m;i++)
{
int x=read(),y=read(),z=read();
a[x][y]=min(a[x][y],z);
}
Run();
if(dis[n]>=inf/) cout<<"-1";
else printf("%d",dis[n]);
return ;
}
最新文章
- C语言修炼-第2天
- 将自己写的windows服务加入到windows集群中
- iOS iPhone iPad 各种控件默认高度
- Oracle函数汇总
- [置顶] 运算符重载,浅拷贝(logical copy) ,vs, 深拷贝(physical copy),三大件(bigthree problem)
- Java学习----集合函数
- 检测WIfi是否打开
- 返璞归真 asp.net mvc (11) - asp.net mvc 4.0 新特性之自宿主 Web API, 在 WebForm 中提供 Web API, 通过 Web API 上传文件, .net 4.5 带来的更方便的异步操作
- Oracle 11g DG手工switchover切换标准化流程
- C setjmp和longjmp
- Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.1:compile (default-compile) 解决方案
- deeplearning.ai 卷积神经网络 Week 3 目标检测 听课笔记
- 【54】Java反射机制剖析
- JavaWeb项目自动部署,持续集成
- web前端开发学习路线图
- day31 锁 队列 前面课程重点总结
- Centos中安装和配置vsftp简明教程
- (原创)sqlite封装库SmartDB1.3发布
- [计算机网络] DNS劫持和DNS污染
- (数据科学学习手札20)主成分分析原理推导&;Python自编函数实现