随笔分类 - 算法---最短路径
摘要:/* 题意:给出一个图,求源点到其他各个点之和 加上 其他各个点到源点之和的最小值 思路:SPFA, 建两个表,顺序不说, 逆序的情况:在初始化的时候在反向保存另一相同表 即: 1 ---> 2 13 反向后:2 ---> 1 13 要求各点到源点的距离和,即求源点到各点的距离和 所以,处理好后,只要求两次源点到各点距离和相加即可 精髓:静...
阅读全文
摘要:for(i=0;iq;i++) { scanf("%d",&a); if(a) { scanf("%d %d",&b,&c); if(!visit[b]||!visit[c]) { printf("ERROR! At path %d to %d\n",b,c); } else { if(edges[b][c]==Max) printf("No such path\n"); else printf("%d\n",edges[b][c]); } } else { scanf("%
阅读全文
摘要:/* 此题纯属套模板 调用时,初始结点s,目标结点e,则 SPFA(s); cout #include int d[1002],n,m; int edges[1005][1005]; int queue[1000001]; #define MAX 999999999 #define N 1001 /* int SPFA(int s) { int i; bool visit...
阅读全文
摘要:#define N 1002 #define MAX 99999 int edges[N][N],d[N],n; void dijkstra(int v) { int i,j; bool s[N]={false}; for(i=1;i<=n;i++) d[i]=edges[v][i]; d[v...
阅读全文
摘要:void SPFA(int s) { for(int i=1;id[u]+ edges[u][i]) { d[i]= d[u]+edges[u][i]; //path[i] = u; if( !visit[i] ) { visit[i...
阅读全文

浙公网安备 33010602011771号