方法一:dfs打表
思路:方法一比較流氓,完全是利用了資料小這一點,不過也算是鍛鍊一下dfs吧,一看題,整個題目敘述簡直就是迷宮題的翻版啊有木有,不假思索直接dfs了,然後跪了。首先,dfs速度太慢,必然超時;此外這裡的迷宮的起點選擇要注意,選擇在迷宮矩陣的正**,由於n不會超過20,矩陣開到40*40就可以保證左右均可以走,否則會造成陣列越界;還有,如果按照我的寫法,需要把起點也要標記上,否則會走回原點。
難點:dfs的改寫
注意:主函式內注釋掉的部分是dfs主體部分,由於只要dfs存在就會超時,因此可恥地直接打表了。
#include#include#includeusing namespace std;
const int max = 100;
int num,n;
int dir[3][2] = ,,};
int book[max][max] = ;
void dfs(int x,int y,int step)
int main()
{ int t,n;
while(cin>>t)
{while(t--)
{cin>>n;
cout<
HDU2563 統計問題
problem description 在一無限大的二維平面中,我們做如下假設 1 每次只能移動一格 2 不能向後走 假設你的目的地是 向上 那麼你可以向左走,可以向右走,也可以向上走,但是不可以向下走 3 走過的格仔立即塌陷無法再走第二次 求走n步不同的方案數 2種走法只要有一步不一樣,即被認為是...
HDU 2563 統計問題
problem description 在一無限大的二維平面中,我們做如下假設 1 每次只能移動一格 2 不能向後走 假設你的目的地是 向上 那麼你可以向左走,可以向右走,也可以向上走,但是不可以向下走 3 走過的格仔立即塌陷無法再走第二次 求走n步不同的方案數 2種走法只要有一步不一樣,即被認為是...
Hdoj 2563 統計問題 題解
problem description 在一無限大的二維平面中,我們做如下假設 1 每次只能移動一格 2 不能向後走 假設你的目的地是 向上 那麼你可以向左走,可以向右走,也可以向上走,但是不可以向下走 3 走過的格仔立即塌陷無法再走第二次 求走n步不同的方案數 2種走法只要有一步不一樣,即被認為是...