動態規劃 1002 過河卒 動態規劃的初次嘗試

2021-09-02 17:42:14 字數 1127 閱讀 5266

棋盤上aa點有乙個過河卒,需要走到目標bb點。卒行走的規則:可以向下、或者向右。同時在棋盤上cc點有乙個對方的馬,該馬所在的點和所有跳躍一步可達的點稱為對方馬的控制點。因此稱之為「馬攔過河卒」。

棋盤用座標表示,aa點(0, 0)(0,0)、bb點(n, m)(n,m)(nn, mm為不超過2020的整數),同樣馬的位置座標是需要給出的。

現在要求你計算出卒從aa點能夠到達bb點的路徑的條數,假設馬的位置是固定不動的,並不是卒走一步馬走一步。

#includeint main();     //寫了演算法主體。。動規dp,明確dp的意義,就是所求量的某一狀態。 

dp[1][0]=1; //這一步是關鍵。先賦乙個邊界上的1.

int map[22][22];

for(int i=0;i<22;i++)

for(int k=0;k<22;k++)

int mx,my,n,m;

scanf("%d%d%d%d",&n,&m,&mx,&my); //輸入資料處理。

int datax=; //馬點和落腳點全部用map標記一下。

int datay=;

for(int i=0;i<9;i++)

//標記結束

for(int j=1;j<=n+1;j++)

} printf("%d",dp[n+1][m+1]);

}

#include#include#define ll long long              //先定義 要儲存輸入資料的變數。  a b n m ,注意,定義的都是靜態變數。

ll a,b,n,m,l[22][22],map[23][23];//map需要開大點qwq //肯定是先考慮成熟了才寫的。

using namespace std;

void bj(ll x,ll y)//標記馬的控制點

int main()

}printf("%lld",l[n+1][m+1]);//整體向右下挪一下

return 0;

}

P1002 過河卒 動態規劃

傳送門 思路 搜尋tle了,只能dp了。dp i j dp i j 1 dp i 1 j 對於 點 i,j 只有 i,j 1 和 i 1,j 這兩種選擇,那麼可以推出狀態轉移方程 先定義dp 0 0 1 dp i j dp i 1 j dp i j 1 但如果這樣的話,以0,0為起點會出現點被覆蓋的...

動態規劃c P1002 過河卒

題目 落谷的p1002題 思路 最開始我用的是深搜演算法,但是提交後發現超時了,改用的dp。到達某乙個位置所需要的方法為 dp i j dp i 1 j dp i j 1 這個公式不需要推,大家自己驗證一下就可以啦!當然還是有點細節要處理,就是dp i j 不可以是馬的位置以及馬控制點的位置 當然 ...

過河卒(動態規劃)

題目描述 棋盤上aa點有乙個過河卒,需要走到目標bb點。卒行走的規則 可以向下 或者向右。同時在棋盤上cc點有乙個對方的馬,該馬所在的點和所有跳躍一步可達的點稱為對方馬的控制點。因此稱之為 馬攔過河卒 棋盤用座標表示,aa點 0,0 0,0 bb點 n,m n,m nn,mm為不超過2020的整數 ...