日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Codevs 1010 过河卒 2002年NOIP全国联赛普及组

發(fā)布時(shí)間:2024/8/26 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Codevs 1010 过河卒 2002年NOIP全国联赛普及组 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

1010 過河卒 2002年NOIP全國聯(lián)賽普及組
時(shí)間限制: 1 s
空間限制: 128000 KB
題目等級 : 黃金 Gold
傳送門
題目描述 Description
 如圖,A 點(diǎn)有一個過河卒,需要走到目標(biāo) B 點(diǎn)。卒行走規(guī)則:可以向下、或者向右。同時(shí)在棋盤上的任一點(diǎn)有一個對方的馬(如上圖的C點(diǎn)),該馬所在的點(diǎn)和所有跳躍一步可達(dá)的點(diǎn)稱為對方馬的控制點(diǎn)。例如上圖 C 點(diǎn)上的馬可以控制 9 個點(diǎn)(圖中的P1,P2 … P8 和 C)。卒不能通過對方馬的控制點(diǎn)。
  棋盤用坐標(biāo)表示,A 點(diǎn)(0,0)、B 點(diǎn)(n,m)(n,m 為不超過 20 的整數(shù),并由鍵盤輸入),同樣馬的位置坐標(biāo)是需要給出的(約定: C不等于A,同時(shí)C不等于B)。現(xiàn)在要求你計(jì)算出卒從 A 點(diǎn)能夠到達(dá) B 點(diǎn)的路徑的條數(shù)。
1<=n,m<=15
輸入描述 Input Description
 鍵盤輸入
   B點(diǎn)的坐標(biāo)(n,m)以及對方馬的坐標(biāo)(X,Y){不用判錯}
輸出描述 Output Description
  屏幕輸出 一個整數(shù)(路徑的條數(shù))。
樣例輸入 Sample Input
 6 6 3 2
樣例輸出 Sample Output
17
數(shù)據(jù)范圍及提示 Data Size & Hint
如描述

/* 考慮三種方式的轉(zhuǎn)移. (1)i&&j g[i][j]=g[i-1][j]+g[i][j-1]. (2)!j 因左邊沒路 所以轉(zhuǎn)移g[i-1][j]. (3)!i 同理轉(zhuǎn)移g[i][j-1]. 以后要更多地去考慮轉(zhuǎn)移狀態(tài)的可行性. */ #include<iostream> #include<cstdio> #define MAXN 20 using namespace std; int m,n,g[MAXN][MAXN],x,y; int main() { cin>>n>>m>>x>>y; for(int i=0;i<=n;i++) for(int j=0;j<=m;j++) g[i][j]=1; g[x-1][y-2]=0; g[x-2][y-1]=0; g[x-1][y+2]=0; g[x-2][y+1]=0; g[x+1][y-2]=0; g[x+1][y+2]=0; g[x+2][y+1]=0; g[x+2][y-1]=0; g[x][y]=0; for(int i=0;i<=n;i++) for(int j=0;j<=m;j++) { if(g[i][j]) { if(!i&&!j) continue; if(i>0&&j>0) g[i][j]=g[i-1][j]+g[i][j-1]; else if(i>0) g[i][j]=g[i-1][j]; else g[i][j]=g[i][j-1]; } } cout<<g[n][m]; return 0; }

轉(zhuǎn)載于:https://www.cnblogs.com/nancheng58/p/6070840.html

總結(jié)

以上是生活随笔為你收集整理的Codevs 1010 过河卒 2002年NOIP全国联赛普及组的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。