time limit: 3000 ms
memory limit: 65536 kib
submit
statistic
problem description
棋盤上a點有乙個過河卒,需要走到目標b點。卒行走的規則:可以向下、或者向右。同時在棋盤上c點有乙個對方的馬,該馬所在的點和所有跳躍一步可達的點稱為對方馬的控制點。因此稱之為「馬攔過河卒」。棋盤用座標表示,a點(0,0)、b點(n,m)(n,m為不超過15的整數),同樣馬的位置座標是需要給出的。現在要求你計算出卒從a點能夠到達b點的路徑的條數,假設馬的位置是固定不動的,並不是卒走一步馬走一步。
input
一行四個資料,用空格分隔,分別表示b點的座標和馬的座標。
output
乙個資料,表示所有的路徑條數。
sample input
6 6 3 3
sample output
6
#include int main()for(i = 0; i <= n; i++)
for(j = 0; j <= m; j++)
g[x][y] = 1;
g[x-1][y-2] = 1;
g[x+1][y-2] = 1;
g[x-2][y-1] = 1;
g[x+2][y-1] = 1;
g[x-2][y+1] = 1;
g[x+2][y+1] = 1;
g[x-1][y+2] = 1;
g[x+1][y+2] = 1;
for(i = 1; i<=n; i++)
if(g[i][0] != 1)
f[i][0] = 1;
else for(; i<=n; i++)
f[i][0] = 0;
for(j = 1; j <= m; j++)
if(g[0][j] != 1)
f[0][j] = 1;
else for(; j <= m; j++)
f[0][j] = 0;
for(i = 1; i <= n; i++)
for(j = 1; j <= m; j++)
if(g[i][j] == 0)
f[i][j] = f[i-1][j] + f[i][j-1];
printf("%d\n",f[n][m]);
return 0;
}
馬攔過河卒
問題描述 棋盤上a 點有乙個過河卒,需要走到目標 b點。卒行走的規則 可以向下 或者向右。同時在棋盤上 c點有乙個對方的馬,該馬所在的點和所有跳躍一步可達的點稱為對方馬的控制點。因此稱之為 馬攔過河卒 棋盤用座標表示,a 點 0,0 b 點 n,m n,m為不超過 15的整數 同樣馬的位置座標是需要...
馬攔過河卒
如圖,a點有乙個過河卒,需要走到目標 b點。卒行走規則 可以向下 或者向右。同時在棋盤上的任一點有乙個對方的馬 如上圖的c點 該馬所在的點和所有跳躍一步可達的點稱為對方馬的控制點。例如上圖 c點上的馬可以控制 9個點 圖中的p1,p2 p8和 c 卒不能通過對方馬的控制點。棋盤用座標表示,a點 0,...
馬攔過河卒
problem description 棋盤上a點有乙個過河卒,需要走到目標b點。卒行走的規則 可以向下 或者向右。同時在棋盤上c點有乙個對方的馬,該馬所在的點和所有跳躍一步可達的點稱為對方馬的控制點。因此稱之為 馬攔過河卒 棋盤用座標表示,a點 0,0 b點 n,m n,m為不超過15的整數 同樣...