競技プログラミング用のライブラリ
次のライブラリへ
前のライブラリへ
004-02 BFSのテンプレート
BFSのテンプレートです。
C#のソース
struct JyoutaiDef
{
internal int Curr_X;
internal int Curr_Y;
internal int Level;
internal int SumCost;
}
static void ExecBFS()
{
var Que = new Queue<JyoutaiDef>();
JyoutaiDef WillEnqueue;
WillEnqueue.Curr_X = 1234;
WillEnqueue.Curr_Y = 1234;
WillEnqueue.Level = 1234;
WillEnqueue.SumCost = 1234;
Que.Enqueue(WillEnqueue);
var VisitedSet = new HashSet<int>();
while (Que.Count > 0) {
JyoutaiDef Dequeued = Que.Dequeue();
// クリア判定
Action<int> EnqueueAct = (仮引数名) =>
{
int Hash = GetHash(WillEnqueue);
if (VisitedSet.Add(Hash)) {
// Que.Enqueue(WillEnqueue);
}
};
// Que.Enqueue(WillEnqueue);
}
}
static int GetHash(JyoutaiDef pJyoutai)
{
return pJyoutai.Curr_X * 1234 + pJyoutai.Curr_Y;
}