洛谷——P1002 过河卒||codevs——T1010 过河卒
生活随笔
收集整理的這篇文章主要介紹了
洛谷——P1002 过河卒||codevs——T1010 过河卒
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
https://www.luogu.org/problem/show?pid=1002#sub||http://codevs.cn/problem/1010/
題目描述
棋盤上A點有一個過河卒,需要走到目標B點。卒行走的規則:可以向下、或者向右。同時在棋盤上C點有一個對方的馬,該馬所在的點和所有跳躍一步可達的點稱為對方馬的控制點。因此稱之為“馬攔過河卒”。
棋盤用坐標表示,A點(0, 0)、B點(n, m)(n, m為不超過20的整數),同樣馬的位置坐標是需要給出的。
現在要求你計算出卒從A點能夠到達B點的路徑的條數,假設馬的位置是固定不動的,并不是卒走一步馬走一步。
輸入輸出格式
輸入格式:
?
一行四個數據,分別表示B點坐標和馬的坐標。
?
輸出格式:
?
一個數據,表示所有的路徑條數。
?
輸入輸出樣例
輸入樣例#1:6 6 3 3 輸出樣例#1:
6
說明
結果可能很大!
?
注意越界處理
1 #include <algorithm> 2 #include <iostream> 3 #include <cstdio> 4 5 using namespace std; 6 7 long long n,m,x,y; 8 long long map[350][350]; 9 long long f[350][350]; 10 11 int main() 12 { 13 cin>>n>>m>>x>>y; 14 map[x][y]=1; 15 if(x+1>=0&&y+2>=0) map[x+1][y+2]=1; 16 if(x+1>=0&&y-2>=0) map[x+1][y-2]=1; 17 if(x+2>=0&&y+1>=0) map[x+2][y+1]=1; 18 if(x+2>=0&&y-1>=0) map[x+2][y-1]=1; 19 if(x-1>=0&&y+2>=0) map[x-1][y+2]=1; 20 if(x-1>=0&&y-2>=0) map[x-1][y-2]=1; 21 if(x-2>=0&&y+1>=0) map[x-2][y+1]=1; 22 if(x-2>=0&&y-1>=0) map[x-2][y-1]=1; 23 f[0][0]=1; 24 for(int i=0;i<=n;i++) 25 for(int j=0;j<=m;j++) 26 if(map[i][j]) f[i][j]=0; 27 else 28 { 29 if(i) f[i][j]+=f[i-1][j]; 30 if(j) f[i][j]+=f[i][j-1]; 31 } 32 cout<<f[n][m]; 33 return 0; 34 }?
轉載于:https://www.cnblogs.com/Shy-key/p/6745277.html
總結
以上是生活随笔為你收集整理的洛谷——P1002 过河卒||codevs——T1010 过河卒的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 从头開始写项目Makefile(三):变
- 下一篇: 业务订单号生成算法,每秒50W左右,不同