洛谷——P1002 过河卒||codevs——T1010 过河卒
生活随笔
收集整理的這篇文章主要介紹了
洛谷——P1002 过河卒||codevs——T1010 过河卒
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
https://www.luogu.org/problem/show?pid=1002#sub||http://codevs.cn/problem/1010/
題目描述
棋盤上A點(diǎn)有一個(gè)過(guò)河卒,需要走到目標(biāo)B點(diǎn)。卒行走的規(guī)則:可以向下、或者向右。同時(shí)在棋盤上C點(diǎn)有一個(gè)對(duì)方的馬,該馬所在的點(diǎn)和所有跳躍一步可達(dá)的點(diǎn)稱為對(duì)方馬的控制點(diǎn)。因此稱之為“馬攔過(guò)河卒”。
棋盤用坐標(biāo)表示,A點(diǎn)(0, 0)、B點(diǎn)(n, m)(n, m為不超過(guò)20的整數(shù)),同樣馬的位置坐標(biāo)是需要給出的。
現(xiàn)在要求你計(jì)算出卒從A點(diǎn)能夠到達(dá)B點(diǎn)的路徑的條數(shù),假設(shè)馬的位置是固定不動(dòng)的,并不是卒走一步馬走一步。
輸入輸出格式
輸入格式:
?
一行四個(gè)數(shù)據(jù),分別表示B點(diǎn)坐標(biāo)和馬的坐標(biāo)。
?
輸出格式:
?
一個(gè)數(shù)據(jù),表示所有的路徑條數(shù)。
?
輸入輸出樣例
輸入樣例#1:6 6 3 3 輸出樣例#1:
6
說(shuō)明
結(jié)果可能很大!
?
注意越界處理
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 }?
轉(zhuǎn)載于:https://www.cnblogs.com/Shy-key/p/6745277.html
總結(jié)
以上是生活随笔為你收集整理的洛谷——P1002 过河卒||codevs——T1010 过河卒的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 从头開始写项目Makefile(三):变
- 下一篇: 业务订单号生成算法,每秒50W左右,不同