zoukankan      html  css  js  c++  java
  • 第五届蓝桥杯C++B组 地宫取宝

    代码:

    #include <bits/stdc++.h>
    using namespace std;
    
    #define ll long long
    
    const ll mod = 1e9 + 7;
    int N, M, K;
    int mp[55][55];
    ll dp[55][55][22][22];
    
    void dfs(int st, int en, int num, int val) {
        if(dp[st][en][num][val] != -1) return;
    
        dp[st][en][num][val] = 0;
        if(st == N && en == M && num == K) {
            dp[st][en][num][val] = 1;
            return;
        }
        if(mp[st][en] > val && num < K) {
            dfs(st, en, num + 1, mp[st][en]);
            dp[st][en][num][val] += dp[st][en][num + 1][mp[st][en]];
            dp[st][en][num][val] %= mod;
        }
        if(st < N) {
            dfs(st + 1, en, num, val);
            dp[st][en][num][val] += dp[st + 1][en][num][val];
            dp[st][en][num][val] %= mod;
        }
        if(en < M) {
            dfs(st, en + 1, num, val);
            dp[st][en][num][val] += dp[st][en + 1][num][val];
            dp[st][en][num][val] %= mod;
        }
    }
    
    int main() {
        memset(dp, -1, sizeof(dp));
        scanf("%d%d%d", &N, &M, &K);
        for(int i = 1; i <= N; i ++) {
            for(int j = 1; j <= M; j ++)
                scanf("%d", &mp[i][j]);
        }
    
        dfs(1, 1, 0, 0);
        printf("%lld
    ", dp[1][1][0][0] % mod);
    
        return 0;
    }
    

     dp 是魔鬼 

  • 相关阅读:
    比较全的笔记
    ios路线
    字符串颜色
    ios 开发学习步骤
    百度地图反地理
    p12证书
    ios官方demo
    ios视频网盘
    图片穿透
    OC温习一:基本数据类型
  • 原文地址:https://www.cnblogs.com/zlrrrr/p/10523794.html
Copyright © 2011-2022 走看看