下象棋 爆搜 動態規劃

2021-09-02 15:28:22 字數 973 閱讀 3801

小樂樂一天天就知道玩,這一天又想玩象棋。

我們都知道馬走日。

現在給定乙個棋盤,大小是n*m,把棋盤放在第一象限,棋盤的左下角是(0,0),右上角是(n - 1, m - 1);

小樂樂想知道,乙個馬從左下角(0, 0)開始,走了k步之後,剛好走到右上角(n - 1, m - 1)的方案數。

輸入:多組樣例輸入,每組一行,三個整數n, m, k(1 <= n, m, k <= 200),如題目所示。
輸出:輸出答案 mod 1000000007
示例1

4 4 2
2
思路:這是一道水題,但我為什麼要為它而寫一篇部落格。因為它十分完美的展現了爆搜與動態規劃在某種情況下的聯絡。

生動形象。可能咋一眼感覺好像完全不同.....但是它完全就是一毛一樣好吧。。。(這就我執著於爆搜的原因?)

爆搜**:

#include#include#include#include#include#includeusing namespace std;

const int mod=1000000007;

#define per(i,a,b) for(int i=a;i<=b;++i)

#define ll long long

ll n,m,k;

int f[8][2]=,,,,,,,};

int vis[205][205][205];

ll dfs(int x,int y,int z)

,,,,,,,};

long long dp[205][205][205]=;

int main()}}

} printf("%lld\n",dp[n-1][m-1][k]);

}

return 0;

}

動態規劃 遞推 中國象棋

中國象棋 總時間限制 10000ms 單個測試點時間限制 1000ms 記憶體限制 65536kb 描述 在n行m列的棋盤上,放若干個炮可以是0個,使得沒有任何乙個炮可以攻擊另乙個炮。請問有多少種放置方法?中國象棋中炮的行走方式大家應該很清楚吧。輸入 一行包含兩個整數n,m,中間用空格分開。輸出 輸...

POJ1088 滑雪 動態規劃 深搜DFS

題目 滑雪 time limit 1000ms memory limit 65536k total submissions 94177 accepted 35668 description michael喜歡滑雪百這並不奇怪,因為滑雪的確很刺激。可是為了獲得速度,滑的區域必須向下傾斜,而且當你滑到坡...

動態規劃 LeetCode96 不同的二叉搜尋樹

題目 給定乙個整數 n,求以 1 n 為節點組成的二叉搜尋樹有多少種?示例 輸入 3 輸出 5 解釋 給定 n 3,一共有 5 種不同結構的二叉搜尋樹 1 3 3 2 1 3 2 1 1 3 2 2 1 2 3二叉搜尋樹 思路1 遞迴。具體見 這種思路很慢。這種思路可以返回所有的二叉搜尋樹 leet...