hdu2112

题意中文题就不用说啦哈

思路:就是迪杰斯特拉,SPFA都可以。然后注意的是 起点和终点一样就得输出0;

借这个题熟悉了下 MAP的用法 美滋滋~~~~~~~

#include
#include
#include
#include
#include
#include
#include
using namespace std;
#define INF 999999999
struct edge
{
    int from,to,w;
};
int n;
mapbian;
vectorG[20011];
vectoredges;
bool vis[20011];
char start[81],end1[81],start1[81],end11[81];
int dis[20011];
int m;
void addedge(int x,int y,int w)
{
    edge a={x,y,w};
    edges.push_back(a);
    edge b={y,x,w};
    edges.push_back(b);
    G[x].push_back(edges.size()-2);
    G[y].push_back(edges.size()-1);
}
void dij()
{   memset(vis,0,sizeof(vis));
    for(int i=1;idis[i])
            {
                u=i;
                min1=dis[i];
            }
        }
        if(min1==INF) break;
        vis[u]=1;
        for(int i=0;i



你可能感兴趣的:(算法-搜索,算法-最短路径算法)