題目
迷宮逃生(計蒜客習題)
~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 表示遊戲的起點,...