題目傳送門
開始以為是一道dfs,寫了結果超時,只過了兩個樣例,這道題牛客寒假訓練營的時候做過,當時沒做出來,後來補上了。過了這麼久又把他當成dfs了,思路參考某大佬
大佬部落格
1小兵只能往下或者右邊走,用二維陣列a來表示到達這個點的路徑條數
2由小兵的行走方式,可以推出狀態轉移方程
a[i][j] = a[i-1][j] + a[i][j-1](到達這個點的路徑條數等於到達它上乙個點和左邊的點的路徑條數之和)
3有些細節處理注意**注釋
#include
using
namespace std;
const
int maxn =30;
int b[maxn]
[maxn]=;
long
long a[maxn]
[maxn]=;
int dx[10]
=;int dy[10]
=;int n,m,bx,by;
intcheck
(int x,
int y)
intmain()
//預處理第0列,第0行
//這裡一定要注意,如果遇到了馬能到達的點,就直接break
//因為小兵只能往右或者往下,例如往右,遇到了馬能到達的點(0,j)
//這個點及其右邊的點,小兵都不能到達了,因為它不能後退或者往左走
for(
int i=
0;i<=bx;i++
)for
(int i=
0;i<=by;i++
)for
(int i=
1;i<=bx;i++)}
cout<[by]
;return0;
}
過河卒(動態規劃)
題目描述 棋盤上aa點有乙個過河卒,需要走到目標bb點。卒行走的規則 可以向下 或者向右。同時在棋盤上cc點有乙個對方的馬,該馬所在的點和所有跳躍一步可達的點稱為對方馬的控制點。因此稱之為 馬攔過河卒 棋盤用座標表示,aa點 0,0 0,0 bb點 n,m n,m nn,mm為不超過2020的整數 ...
過河卒 動態規劃 高精度
題目 過河卒 問題編號 69 如圖,a 點有乙個過河卒,需要走到目標 b 點。卒行走規則 可以向下 或者向右。同時在棋盤上的任一點有乙個對方的馬 如上圖的c點 該馬所在的點和所有跳躍一步可達的點稱為對方馬的控制點。例如上圖 c 點上的馬可以控制 9 個點 圖中的p1,p2 p8 和 c 卒不能通過對...
動態規劃 洛谷 過河卒
第 dp i j 個位置到達的可能性是第 dp i 1 j 個位置方案數 第 dp i j 1 個位置的方案數 題目中馬以 日 字形沿各方向跳出的點才是題目中所謂馬控制的九個點,而不是馬座標周圍的九個點 題目的座標系是以第四象限為平面,卒可向下或向右 dfs求路徑總數要設定邊界 1 到達目的地結束 ...