国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

馬攔過河卒 遞推

2019-11-11 03:45:04
字體:
來源:轉載
供稿:網友

馬攔過河卒 Time Limit: 3000MS Memory Limit: 65536KB Submit Statistic PRoblem Description

棋盤上A點有一個過河卒,需要走到目標B點。卒行走的規則:可以向下、或者向右。同時在棋盤上C點有一個對方的馬,該馬所在的點和所有跳躍一步可達的點稱為對方馬的控制點。因此稱之為“馬攔過河卒”。棋盤用坐標表示,A點(0,0)、B點(n,m)(n,m為不超過15的整數),同樣馬的位置坐標是需要給出的。現在要求你計算出卒從A點能夠到達B點的路徑的條數,假設馬的位置是固定不動的,并不是卒走一步馬走一步。

Input

一行四個數據,用空格分隔,分別表示B點的坐標和馬的坐標。

Output

一個數據,表示所有的路徑條數。

Example Input

6 6 3 3

Example Output

6

#include <bits/stdc++.h>using namespace std;int main(){ int g[20][20]={0}; long long int f[20][20]={0}; int dx[9]={0,-2,-1,1,-2,2,1,-1,2}; int dy[9]={0,-1,-2,-2,1,1,2,2,-1}; int n,m,x,y,i,j; cin>>n>>m>>x>>y; g[x][y]=1; for(i=1;i<=8;i++) { if((x+dx[i]>=0)&&(x+dx[i]<=n)&&(y+dy[i]>=0)&&(y+dy[i]<=m)) { g[x+dx[i]][y+dy[i]]=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]==1) f[i][j]=0; else f[i][j]=f[i-1][j]+f[i][j-1]; } } cout<<f[n][m]<<endl; return 0;}
上一篇:2.6小記

下一篇:oracle各種連接介紹

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 安新县| 盐边县| 鲁甸县| 神农架林区| 吉林省| 临颍县| 拜城县| 广宗县| 杭锦后旗| 织金县| 武山县| 新巴尔虎右旗| 虎林市| 禄丰县| 璧山县| 清水河县| 灵山县| 玛沁县| 霍城县| 余姚市| 菏泽市| 上虞市| 泗阳县| 凌海市| 高要市| 贵溪市| 建湖县| 宜兰市| 无棣县| 定襄县| 微山县| 红桥区| 竹山县| 渭南市| 河津市| 沂水县| 宿迁市| 揭东县| 磐安县| 沈丘县| 池州市|