【題解】CSES 1638 Grid Paths

【題目敘述】https://cses.fi/problemset/task/1638/
【解題想法】DP

#include <iostream>
using namespace std;
 
int n, g[1005][1005], mod = 1e9+7;
char c;
 
int main() {
    cin >> n;
    for (int i = 0; i <= n; i++){
        g[0][i] = 1;
        g[i][0] = 1;
    }
    for (int i = 1; i <= n; i++){
        for (int j = 1; j <= n; j++){
            cin >> c;
            if (c == '*') g[i][j] = 0;
            else if (i == 1){
                g[i][j] += g[i][j-1];
                g[i][j] %= mod;
            }
            else if (j == 1){
                g[i][j] += g[i-1][j];
                g[i][j] %= mod;
            }
            else {
                g[i][j] += g[i-1][j];
                g[i][j] %= mod;
                g[i][j] += g[i][j-1];
                g[i][j] %= mod;
            }
        }
    }
    cout << g[n][n];
}
分享本文 Share with friends