题目链接:HDU 2612
题意:
给一张地图,"Y"和"M"表示两个人的位置,"#"表示道路不通,"."表示道路可行,"@"表示KFC,求从两个人分别从各自起点出发到一家KFC的最短路径和。
分析:
一开始是想对每一家KFC分别求出两个人的路径,然后相加,取最小值,可是这样果然TLE了,部分代码如下:
int bfs(int sx,int sy,int ex,int ey)
{//(sx,sy)是人的起点坐标,(ex,ey)是KFC坐标
memset(vis, 0, sizeof(vis));
queue<Node> q;
cur.a = sx, cur.b = sy, cur.step = 0;
vis[sx][sy] = 1;
q.push(cur);
while (!q.empty())
{
cur