C/C++描述 第十一屆藍橋杯省賽 第一場(2020.7.5) 試題 H: 走方格 題目+題解

第十一屆藍橋杯省賽C/C++大學B組 第一場

  大家好,我叫亓官劼(qí guān jié ),在CSDN中記錄學習的點滴歷程,時光荏苒,未來可期,加油~博客地址爲:亓官劼的博客

本文原創爲亓官劼,請大家支持原創,部分平臺一直在盜取博主的文章!!!

博主目前僅在CSDN中寫博客,唯一博客更新的地址爲:亓官劼的博客


在這裏插入圖片描述

試題 H: 走方格

時間限制: 1.0s 內存限制: 512.0MB 本題總分:20 分

【問題描述】

在平面上有一些二維的點陣。

這些點的編號就像二維數組的編號一樣,從上到下依次爲第 1 至第 n 行,

從左到右依次爲第 1 至第 m 列,每一個點可以用行號和列號來表示。

現在有個人站在第 1 行第 1 列,要走到第 n 行第 m 列。只能向右或者向下

走。

注意,如果行號和列數都是偶數,不能走入這一格中。

問有多少種方案。

【輸入格式】

輸入一行包含兩個整數 n, m。

【輸出格式】

輸出一個整數,表示答案。

【樣例輸入】

3 4

【樣例輸出】

2

【樣例輸入】

6 6

【樣例輸出】

0

【評測用例規模與約定】

對於所有評測用例,1 ≤ n ≤ 30, 1 ≤ m ≤ 30。

試題H 題解

這題的這個數據量。。。直接暴力就完了,到這裏我已經嚴重懷疑我拿到的是不是藍橋杯的題目了。。。

#include <iostream>
#include <vector>
using namespace std;
int main(){
    int n,m;
    cin>>n>>m;
    vector<vector<int>> dp(n+1,vector<int>(m+1));
    for(int i = 1;i <= n;i++){
        dp[i][1] = 1;
    }
    for (int j = 1; j <= m; ++j) {
        dp[1][j] = 1;
    }
    for(int i = 2;i <= n;i++){
        for (int j = 2; j <= m; ++j) {
            if(i%2==0 && j%2==0)
                continue;
            else
                dp[i][j] = dp[i-1][j] + dp[i][j-1];
        }
    }
    cout<<dp[n][m];
    return 0;
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章