hdu 5433 xiao ming climbing
這題就是優先佇列+bfs ,,,但是一直wa 原因是在搜尋時標記的位置有問題。。。。。。(以前都沒有出現過這種情況)
另外就是雖然找過這點的座標(先前到過這個點),,但是鬥志值可能不一樣(題目中要求只要不為0就可以,也就是說到這個點的體力消耗可能會不一樣,要取最小的那個),,,,所以要用三維陣列來標記。(一般的優先佇列是用二維陣列來標記吧)
#include #include #include #include #include #include #include #include #include #include #define pi 3.1415926
#define e 1000
using namespace std;
typedef long long ll;
char map[55][55];
int n,m,k,sx,sy,ex,ey;
bool vis[52][52][52];
int dis[4][2] = ;
struct node
node(int x_,int y_,int k_,double d_)
:x(x_),y(y_),k(k_),d(d_) {}
};double bfs()
}return -1;
}int main()
scanf("%d%d%d%d",&sx,&sy,&ex,&ey);
double ans = bfs();
if(ans >= 0)printf("%.2lf\n",ans);
else printf("no answer\n");
}return 0;
}
BFS 優先佇列
湘潭大學2018 小明來到乙個由n x m個格仔組成的迷宮,有些格仔是陷阱,用 表示,小明進入陷阱就會死亡,表示沒有陷阱。小明所在的位置用 s 表示,目的地用 t 表示。小明只能向上下左右相鄰的格仔移動,每移動一次花費1秒。有q個單向傳送陣,每個傳送陣各有乙個入口和乙個出口,入口和出口都在迷宮的格仔...
BFS 記錄路徑 bfs 優先順序佇列
bfs 記錄路徑 原題鏈結 找到最短路徑,然後輸出,由於地圖上有怪物,我們還要額外記錄停留的時間。本題需要用到優先順序佇列,唔,大概意思就是對佇列進行排序,我們需要挑選最小的來計算,確保是最短路徑 關於優先順序佇列可以看這個 優先順序佇列 我在網上找到的我感覺講的很詳細的部落格。include in...
HDU 2653 BFS 優先佇列
這題題意 告訴起點y的位置,然後告訴終點l的位置,然後輸入 n,m,t p,其中 n和m是代表行和列,而t 是時間,p代表能量,如果在t範圍內沒有找到l的話,就失敗了,如果在t範圍內找到了l,那麼求出最少步數,代表空地,可以走路過去,也可以飛過去,代表不能走路過去,也不能飛過去,而 代表的是可以飛過...