棋盤上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的整數 ...