以前碼的**。
#include #include using namespace std;
long long b[21][21];
int n,m,a,b;
void init()
}if(a-2>=0&&b-1>=0) //把馬的位置和所有馬能走到的位置都賦為0,注意考慮邊界
b[a-2][b-1]=0;
if(a-2>=0&&b+1<=m)
b[a-2][b+1]=0;
if(a-1>=0&&b-2>=0)
b[a-1][b-2]=0;
if(a-1>=0&&b+2<=m)
b[a-1][b+2]=0;
if(a+1<=m&&b-2>=0)
b[a+1][b-2]=0;
if(a+2<=n&&b-1>=0)
b[a+2][b-1]=0;
if(a+1<=n&&b+2<=m)
b[a+1][b+2]=0;
if(a+1<=n&&b+1<=m)
b[a+2][b+1]=0;
b[a][b]=0;
}int main()/*這裡就是處理所說的特殊情況,相當於如果在最上一行或者最左一行
出現乙個馬,那麼後面的值都賦為0
*/ else if (i==0)else if (j==0)else}}
}printf("%lld\n",b[n][m]);
return 0;
}
過河卒演算法
過河卒基本思想 利用動態規劃轉空間為時間,利用動態規劃一般方法,把資料記錄下來,同時走兩條路線,只要不重合就好 include include include include define maxx a,b,c,d max max a,b max c,d using namespace std in...
過河卒 遞推
description 如圖,a 點有乙個過河卒,需要走到目標 b 點。卒行走規則 可以向下 或者向右。同時在棋盤上的任一點有乙個對方的馬 如上圖的c點 該馬所在的點和所有跳躍一步可達的點稱為對方馬的控制點。例如上圖 c 點上的馬可以控制 9 個點 圖中的p1,p2 p8 和 c 卒不能通過對方馬的...
過河卒 題目
題目描述 棋盤上 a 點有乙個過河卒,需要走到目標 b 點。卒行走的規則 可以向下 或者向右。同時在棋盤上 c 點有乙個對方的馬,該馬所在的點和所有跳躍一步可達的點稱為對方馬的控制點。因此稱之為 馬攔過河卒 棋盤用座標表示,a點 0,0 b點 n,m 同樣馬的位置座標是需要給出的。現在要求你計算出卒...