DP 過河卒
阿新 • • 發佈:2017-10-25
數據 一個數 lld 所有 clu pri lose 控制 spa
棋盤上A點有一個過河卒,需要走到目標B點。卒行走的規則:可以向下、或者向右。同時在棋盤上C點有一個對方的馬,該馬所在的點和所有跳躍一步可達的點稱為對方馬的控制點。因此稱之為“馬攔過河卒”。
棋盤用坐標表示,A點(0, 0)、B點(n, m)(n, m為不超過20的整數),同樣馬的位置坐標是需要給出的。
現在要求你計算出卒從A點能夠到達B點的路徑的條數,假設馬的位置是固定不動的,並不是卒走一步馬走一步。
輸入輸出格式
輸入格式:
一行四個數據,分別表示B點坐標和馬的坐標。
輸出格式:
一個數據,表示所有的路徑條數。
輸入輸出樣例
輸入樣例#1:6 6 3 3輸出樣例#1:
6
代碼如下:
#include <stdio.h> long long a[1001][1001]; int main() { int x1,y1,x2,y2; scanf("%d%d%d%d",&x1,&y1,&x2,&y2); x1+=2;y1+=2;x2+=2;y2+=2; for(int i=2;i<=x1;i++) for(int j=2;j<=y1;j++) { a[2][2]=1; a[x2][y2]View Code=0; a[x2+2][y2+1]=0; a[x2+1][y2+2]=0; a[x2-1][y2+2]=0; a[x2-2][y2+1]=0; a[x2-2][y2-1]=0; a[x2-1][y2-2]=0; a[x2+1][y2-2]=0; a[x2+2][y2-1]=0; a[i][j]=a[i-1][j]+a[i][j-1]; } printf("%lld",a[x1][y1]); return 0; }
DP 過河卒