HDU 4370 0 or 1 (SPFA)
2013-05-31 16:07
281 查看
看了http://www.cnblogs.com/kuangbin 的博客才有思路的、
#include <iostream> #include <cstdio> #include <cstring> #include <queue> #include <stack> #include <algorithm> #include <cmath> #include <map> #define LL long long #define DB double using namespace std; const int N = 309; const int INF = 0x3f3f3f3f; int re ; int n; int dis ; queue<int> que; int inque ; int spfa(int st,int en) { int ini = 1; memset(dis,INF,sizeof(dis)); dis[st] = 0; while(!que.empty()) que.pop(); que.push(st); while(!que.empty()) { int e = que.front();que.pop(); inque[e] = 0; for(int i=1;i<=n;i++) if(dis[i]>dis[e]+re[e][i]) { dis[i] = dis[e] + re[e][i]; if(!inque[i]) que.push(i),inque[i] = 1; } if(ini) dis[st] = INF,ini = 0; } return dis[en]; } void solve() { printf("%d\n",min(spfa(1,n),spfa(1,1)+spfa(n,n))); } int main() { #ifndef ONLINE_JUDGE freopen("in.txt","r",stdin); #endif while(~scanf("%d",&n)) { for(int i=1;i<=n;i++) for(int j=1;j<=n;j++) scanf("%d",&re[i][j]); solve(); } return 0; }
相关文章推荐
- HDU 4370 0 or 1——spfa
- [spfa] hdu 4370 0 or 1
- HDU-4370 0 or 1(SPFA)
- HDU 4370 0 or 1 (最短路+最小环)
- hdu 4370 0 or 1
- hdu 0 or 1(最短路spfa)(本质,抽象)
- HDU 4370 0 or 1(邻接矩阵+定点非自环最小环)
- HDU 4370 0 or 1(最短路)
- hdu 4370 0 or 1 (最短路)
- hdu 0 or 1(最短路spfa)(本质,抽象)
- HDU - 4370(SPFA+转化思想)
- 最短路+最小花费环-HDU-4370-0 or 1
- hdu 0 or 1(最短路spfa)(本质,抽象)
- HDU-4370 0 or 1( 最短路 )
- HDU 4370 0 or 1(最短路)
- hdu 4370 0 or 1
- hdu 0 or 1(最短路spfa)(本质,抽象)
- HDU - 4370 0 or 1
- hdu 0 or 1(最短路spfa)(本质,抽象)
- hdu 0 or 1(最短路spfa)(本质,抽象)