重写Dijkstra
啊我沙雕了,竟然以为DJ的邻接矩阵不用初始化。。 #include<bits/stdc++.h> #define R register int using namespace std; //const int inf=0x3f3f3f3f; inline int read() { int x=0,f=1;char ch=getchar(); while(ch<'0'||ch>'9') if(ch=='-') f=-1,ch=getchar(); while(ch>='0'&&ch<='9') x=(x<<3)+(x<<1)+ch-'0',ch=getchar(); return x*f; } int n,m,a[501][501],dis[501],inf; bool vis[501]; inline void Run() { memset(dis,0x3f,sizeof(dis)); inf=dis[1]; dis[1]=0; for(R i=1;i<n;i++) { int x=0; for(R j=1;j<=n;j++) { if((!vis[j])&&(x==0||dis[j]<dis[x])) x=j; } vis[x]=1; for(R k=1;k<=n;k++) //if(a[x][k]) dis[k]=min(dis[k],dis[x]+a[x][k]); } }