dijsktra+链式前向星

来源:互联网 发布:火山移动编程破解版 编辑:程序博客网 时间:2024/06/18 18:50
#include<iostream>#include<cstdio>#include<cstdlib>#include<cstring>using namespace std;const int inf=1e7,num=10;int to[100*num],be[100],ne[100*num],w[100],d[100],p[100],e;void add(int x,int y,int c){to[++e]=y;ne[e]=be[x];be[x]=e;w[e]=c;}int main(){int i,j,k,m,n,x,y,w;scanf("%d%d",&n,&m);for(i=1;i<=m;i++){scanf("%d%d%d",&x,&y,&w);add(x,y,w);add(y,x,w);}for(i=1;i<=n;i++){p[i]=0;d[i]=inf;}d[1]=1;for(i=1;i<=n;i++){int tmp=inf;for(j=be[i];j;j=ne[j]){int v=to[j];if(!p[v] && d[v]<tmp){k=v;tmp=d[v];}p[v]=1;for(j=be[v];j;j=ne[j]){int v=to[j];if(!p[v] && d[v]>d[k]+w[j])d[v]=d[k]+w[j];}}return 0;}

这仅仅是一个模板:

手打一遍,没有数据;可能有误,只看思想


1 0
原创粉丝点击