迷宮逃生 計蒜客習題 狀態壓縮搜尋

2021-09-10 07:03:15 字數 693 閱讀 6343

題目

迷宮逃生(計蒜客習題)

~ac題解

方法: 狀壓dp+二進位制

詳解:

⽤⼀個三元bool陣列 vis[x][y][mask]表示當前狀態,含義是當前在(x, y) 這個點,鑰匙狀態是 mask;

bfs 搜尋,當下⼀個點是鑰匙時,新放的狀態的 mask 或上這把鑰匙,當下⼀個點是⻔時,只有當 mask 上這把鑰匙

對應的位是 1 時才能放進新的狀態。

附上ac**~

#include using namespace std;

char maze[30][30];

bool vis[30][30][1024];

int n,m,t,sx,sy,ans=0x3f3f3f3f;

int dir[4][2] = , , , };

bool in(int x, int y)

struct edge;

int bfs(int sx,int sy)

}else}}

}} }

if(ans == 0x3f3f3f3f)else

}int main()}}

cout

}

逃生 計蒜客 動態規劃基礎

雖長,但核心思想不難,基礎的動態規劃問題。提交後6個樣例裡通過了5個,覺得演算法應該沒問題的。找了一上午都沒發現問題原因。最後還是將所有資料全部列印出來,才發現在for迴圈這裡出了大問題。是在處理右下塊的時候誤將for int i x 1 i n i 寫成了for int i x 1 i 1 i 不...

計蒜客習題 蒜頭君走迷宮

蒜頭君從乙個 n 行 m 列的迷宮的左上角走到右下角,蒜頭君每次只能向下或者向右走一步,蒜頭君想知道他有多少種走法。輸入格式 輸入兩個整數 n 2 n 10 5 m 2 m 10 5 輸出格式 由於方案數太多,輸出最後結果對 1000000007 取模的結果。樣例輸入 2 3 樣例輸出 3 incl...

狀態壓縮 廣度優先搜尋 迷宮遊戲

題目描述 pluto 已經很久沒有玩遊戲了,今天 pluto 難得能夠歇一天。於是,pluto 決定要玩乙個非常好玩的迷宮遊戲。這個迷宮遊戲在乙個 n 行 m 列的矩陣上進行,遊戲中的任意時刻不能走出這個矩陣。在這個矩陣中,有下列幾種元素 表示一塊平地。x 表示一堵牆,不能經過。s 表示遊戲的起點,...