1. 程式人生 > >2002年分割槽聯賽普級組之四 過河卒

2002年分割槽聯賽普級組之四 過河卒

Description

  如圖,A 點有一個過河卒,需要走到目標 B 點。卒行走規則:可以向下、或者向右。同時在棋盤上的任一點有一個對方的馬(如上圖的C點),該馬所在的點和所有跳躍一步可達的點稱為對方馬的控制點。例如上圖 C 點上的馬可以控制 9 個點(圖中的P1,P2 … P8 和 C)。卒不能通過對方馬的控制點。 

2002年分割槽聯賽普級組之四 <wbr>過河卒
  棋盤用座標表示,A 點(0,0)、B 點(n,m)(n,m 為不超過 20 的整數,並由鍵盤輸入),同樣馬的位置座標是需要給出的(約定: C<>A,同時C<>B)。現在要求你計算出卒從 A 點能夠到達 B 點的路徑的條數。

Input

B點的座標(n,m)以及對方馬的座標(X,Y){不用盤錯} 

Output

一個整數(路徑的條數)。

Sample Input

Sample Output

因為要到達棋盤上的一個點,只能從左邊過來或是從上邊過來,所以根據加法原理,到達某一點的路徑數目等於到達其相鄰的上點和左點的路徑數目之和,因此我們可以使用逐列遞推的方法來求出從起點到終點的路徑數目。遞推關係式為:f[i,j]=f[i-1,j]+f[i,j-1],遞推邊界有四個:f[i,j]=0f[i,0]=f[i-1,0]f[0,j]=f[0,j-1]f[0,0]=1
程式:
const
  dx:array[1..8]of shortint=(-2,-1,1,2,2,1,-1,-2);
  dy:array[1..8]of shortint=(1,2,2,1,-1,-2,-2,-1);
var
  a:array[-1..21,-1..21]of int64;
  b:array[-1..21,-1..21]of shortint;
  n,m,i,j,x,y:longint;
begin
  readln(n,m,x,y);
  for i:=0 to n do
    for j:=0 to m do
      b[i,j]:=1;
  if b[0,0]=1 then a[0,0]:=1;
  b[x,y]:=0;
  for i:=1 to 8 do
    b[x+dx[i],y+dy[i]]:=0;
  for i:=1 to m do
    if b[0,i]=1 then a[0,i]:=a[0,i-1];
  for i:=1 to n do
    if b[i,0]=1 then a[i,0]:=a[i-1,0];
  for i:=1 to n do
    for j:=1 to m do
       if b[i,j]=1 then a[i,j]:=a[i-1,j]+a[i,j-1];
  writeln(a[n,m]);
end.

相關推薦

2002分割槽聯賽 

Description   如圖,A 點有一個過河卒,需要走到目標 B 點。卒行走規則:可以向下、或者向右。同時在棋盤上的任一點有一個對方的馬(如上圖的C點),該馬所在的點和所有跳躍一步可達的點稱為對方馬的控制點。例如上圖 C 點上的馬可以控制 9 個點(圖中的P1,P2 … P8 和 C)。卒不

2004分割槽聯賽 火星人

題目描述 人類終於登上了火星的土地並且見到了神祕的火星人。人類和火星人都無法理解對方的語言,但是我們的科學家發明了一種用數字交流的方法。這種交流方法是這樣的,首先,火星人把一個非常大的數字告訴人類科學家,科學家破解這個數字的含義後,再把一個很小的數字加到這個大

1997分割槽聯賽三 二進位制…

Description 任何一個正整數都可以用2的冪次方表示。例如:  137=27+23+20  同時約定方次用括號來表示,即ab 可表示為a(b)。  由此可知,137可表示為:  2(7)+2(3)+2(0)  進一步:7= 22+2+20 (21用2表示)  3=2+20  所以最後137

2006分割槽聯賽二 開心的…

Description   金明今天很開心,家裡購置的新房就要領鑰匙了,新房裡有一間他自己專用的很寬敞的房間。更讓他高興的是,媽媽昨天對他說:“你的房間需要購買哪些物品,怎麼佈置,你說了算,只要不超過N 元錢就行”。今天一早金明就開始做預算,但是他想買的東西太多了,肯定會超過媽媽限定的N 元。於是

1999分割槽聯賽二 迴文數

若一個數(首位不為零)從左向右讀與從右向左讀都一樣,我們就將其稱之為迴文數。  例如:給定一個10進位制數56,將56加56(即把56從右向左讀),得到121是一個迴文數。  又如:對於10進位制數87:  STEP1:87+78 = 165 STEP2:165+561 = 726  STEP3:726+6

2004分割槽聯賽之一 不…

Description   津津上初中了。媽媽認為津津應該更加用功學習,所以津津除了上學之外,還要參加媽媽為她報名的各科複習班。另外每週媽媽還會送她去學習朗誦、舞蹈和鋼琴。但是津津如果一天上課超過八個小時就會不高興,而且上得越久就會越不高興。假設津津不會因為其它事不高興,並且她的不高興不會持續到第

1997分割槽聯賽之一 統計

Description 設有一個n*m方格的棋盤(1≤m,n≤100)。    求出該棋盤中包含多少個正方形、多少個長方形(不包括正方形)。  例如:當n=2,m=3時    正方形的個數有8個;即邊長為1的正方形有6個;  邊長為2的正方形有2個。  長方形的個數有10個;  即2*1的長

2003分割槽聯賽之一 乒乓球

Description   國際乒聯現在主席沙拉拉自從上任以來就立志於推行一系列改革,以推動乒乓球運動在全球的普及。其中11分制改革引起了很大的爭議,有一部分球員因為無法適應新規則只能選擇退役。華華就是其中一位,他退役之後走上了乒乓球研究工作,意圖弄明白11分制和21分制對選手的不同影響。在開展他的

NOIP2015試題 掃雷遊戲

思路 這個題應該暴力模擬就可以過 程式碼 #include<cstdio> using namespace std; int n,m,a[101][101];//初始化 int main() { char d;//初始化 scanf("%d%d

201812月29日

解題報告前言三個袋子題目分析程式碼 前言 確定這是普及的題目嗎 三個袋子 題目 將NNN個不同的球放到3個相同的袋子裡,求放球的方案總數MMM 分析 如果每個袋子不一樣,球也不一樣,那麼總方案數為3

201812月29日 解題報告

首先看第一題,比較明顯的模擬題,打了高精度,第二題暫時沒思路,先剛第三題,先想到dfsdfsdfs求層數,發現可以直接用並查集搞搞,就過了,第四題沒思路,就碼了第四題,發現可以直接用桶排,過掉。第四題仔

201810月31日

前言 賽後AK VIJOS 1389 婚禮上的小杉 題目 總計N封的信件,每個信件都有自己的特徵碼和序號。 請按照序號遞增的順序輸出信件的特徵碼 每行一個特徵碼,且特徵碼的格式應與輸入完全一致 程式碼(過水) #include <cstdio>

201811月30日 解題報告

首先第一題是個很明顯的水題切掉了,第二題發現都是1,於是就輸出了1,竟然有50!第三題打了貪心40,總分190 T1 婚禮上的小杉 排序題,略掉吧。。。 話說我是本題唯一一個O(n)O(n)O(n)過的 T2 玩詐欺的小杉 給定變化規則,求最終矩陣 這是經典

2007分割槽聯賽提高之一 統計數字(SSL 1063)

Description   某次科研調查時得到了n個自然數,每個數均不超過1500000000(1.5*109)。已知不相同的數不超過10000個,現在需要統計這些自然數各自出現的次數,並按照自然數從小到大的順序輸出統計結果。 Input   輸入包含n

2013NOIP第二題--表示式的值(參考洛谷題解)

一、題目描述 給定一個只包含加法和乘法的算術表示式,請你程式設計計算表示式的值。 輸入輸出格式 輸入格式: 輸入檔案為 expr.in。 輸入僅有一行,為需要你計算的表示式,表示式中只包含數字、加法運算子“+”和乘法運算子“*”,且沒有括號,所有參與運算的數字均為

2012NOIP第二題--尋寶(參考洛谷題解)

一、題目描述 傳說很遙遠的藏寶樓頂層藏著誘人的寶藏。小明歷盡千辛萬苦終於找到傳說中的這個藏寶樓,藏寶樓的門口豎著一個木板,上面寫有幾個大字:尋寶說明書。說明書的內容如下: 藏寶樓共有N+1層,最上面一層是頂層,頂層有一個房間裡面藏著寶藏。除了頂層外,藏寶樓另有N層,每層M個房間,這M個房間圍成一圈並按逆

2013NOIP-- 小朋友的數字

題目連結: https://www.luogu.org/problemnew/show/P1982        很顯然,這是一個最大欄位和問題,但是要注意的是在算每個小朋友的分數的時候是會爆longlong的,我們注意到小朋友的特徵值和分數是遞增的,

2002普及

upload eight print 比較 通過 pro online ret 過河 題目描述 如圖,A 點有一個過河卒,需要走到目標 B 點。卒行走規則:可以向下、或者向右。同時在棋盤上的任一點有一個對方的馬(如上圖的C點),該馬所在的點和所有跳躍一步可達的點稱為對方馬

Sql語法高應用:使用視圖實現多表聯合數據明細

sele inner receiver rod erp upn pen logistic received 之前章節我們講到:如果某個表的數據是多個表的聯合,並且存在列與列的合並組成新列,用視圖是最好的方案。 下面我分享兩個個真實的SQL語句案例 USE Wot_In

NOIP 2002普及 詳解

本文圖片引用自“kcfzyhq”的部落格 1.分析 首先我們來看看下面這個圖,這個圖基本表現了題目的意思:一個卒要從圖的左上角A點走到右下角B點,而其中有一點C為馬的位置,C與其周邊馬能走到的P1~P8點共9個點是不能走的,問有多少種從A走到B的方法