最短路问题,尽管a!=b,可是同一条路測评数据会给你非常多个。因此在读入的时候要去最短的那条路存起来.........见了鬼了。坑爹
#include#include #include #define maxn 205#define inf 1<<30using namespace std;int n,m;int vaule[maxn][maxn];vector mapp[maxn];int visit[maxn];int a,b;int dijkstra(){ int d[maxn]; fill(d,d+n,inf); fill(visit,visit+n,0); d[a]=0; while(!visit[b]) { int v=-1; for(int i=0;i >n>>m) { for(int i=0;i<=n;i++) mapp[i].clear(); memset(vaule,0,sizeof(vaule)); for(int i=0;i >x>>y>>z; if(x!=y&&!vaule[x][y]) { mapp[x].push_back(y); mapp[y].push_back(x); vaule[x][y]=z; vaule[y][x]=z; } else { vaule[x][y]=min(vaule[x][y],z); vaule[y][x]=min(vaule[y][x],z); } } cin>>a>>b; cout< <
posted on 2017-05-29 09:02 阅读( ...) 评论( ...)