1212. 地宫取宝

简介: 1212. 地宫取宝

1212. 地宫取宝 - AcWing题库

//卡壳点:m写成了n,这也是高频卡壳错误,需要优先检查

#include <iostream>
#include <cstring>
#include <algorithm>
#include <cstdio>
using namespace std;
const int mod = 1000000007;int n,m,k;
int f[55][55][15][15];
int w[55][55];
int main(){
    cin >> n >> m >> k;
    for (int i = 1; i <= n; i ++ )
        for (int j = 1; j <= m; j ++ )
        {
            cin >> w[i][j];
            w[i][j] ++ ;
        }
    f[1][1][0][0] = 1;
    f[1][1][1][w[1][1]] = 1;
    for(int i = 1;i <= n;i++){
        for(int j = 1;j <= m;j++){//卡壳点:m写成了n这也是高频卡壳错误
            if(i == 1 && j == 1)continue;
            for(int a = 0;a <= k;a++){
                for(int b = 0;b <= 13;b++){
                    int &val = f[i][j][a][b] ;
                    val = (val + f[i][j-1][a][b]) % mod;
                    val = (val + f[i-1][j][a][b]) % mod;
                    if(a > 0 && b < w[i][j]){
                        int &vall = f[i][j][a][w[i][j]];
                        vall = (vall + f[i][j-1][a-1][b]) % mod;
                        vall = (vall + f[i-1][j][a-1][b]) % mod;
                    }    
                }
            }
        }
    }
    int res = 0;
    for (int i = 0; i <= 13; i ++ ) res = (res + f[n][m][k][i]) % mod;
    cout << res << endl;
}

思路


// // 数据范围

// 1≤n,m≤50

// ,

// 1≤k≤12

// ,

// 0≤Ci≤12

// // 范围小,不用在意


// // 他有多少种不同的行动方案能获得这 k

// // 件宝贝。

// // 切入点 求满足条件的方案数量 dp,枚举,dfs

// dp

// 状态表示 集合 坐标,最大价值,数量 ,四维数组表示f[i][j][k][w] 走到i,j时k件物品,最大价值为w的方案数

// 需要用0作第四维下标来表示还没有选,因此w读入时要++

// 属性 数量

// 状态计算 集合划分 最后一个不一样的点 f[i][j][k][w];


// 拿I,J f[i-1][j][k-1][0~w[i][j]-1];

// f[i][j-1][k-1][0~w[i][j]-1];



// 不拿i,j f[i-1][j][k][0~13];

// f[i][j-1][k][0~13];


// 所有方案相加得f[i][j],两两相加之后取模

// // 输出f[i][j][k][0~13]

// 边界初始化f[1][1][0][0] = 1;

// f[1][1][1][w[1][1]] = 1;


目录
相关文章
|
7月前
overleaf 插入图片,引用图片,图标标题Fig与文章引用Figure不一致解决
overleaf 插入图片,引用图片,图标标题Fig与文章引用Figure不一致解决
1283 0
|
机器学习/深度学习 传感器 编解码
史上最全 | BEV感知算法综述(基于图像/Lidar/多模态数据的3D检测与分割任务)
以视觉为中心的俯视图(BEV)感知最近受到了广泛的关注,因其可以自然地呈现自然场景且对融合更友好。随着深度学习的快速发展,许多新颖的方法尝试解决以视觉为中心的BEV感知,但是目前还缺乏对该领域的综述类文章。本文对以视觉为中心的BEV感知及其扩展的方法进行了全面的综述调研,并提供了深入的分析和结果比较,进一步思考未来可能的研究方向。如下图所示,目前的工作可以根据视角变换分为两大类,即基于几何变换和基于网络变换。前者利用相机的物理原理,以可解释性的方式转换视图。后者则使用神经网络将透视图(PV)投影到BEV上。
史上最全 | BEV感知算法综述(基于图像/Lidar/多模态数据的3D检测与分割任务)
|
2天前
|
数据采集 Rust Java
Python 为什么没有 main 函数?为什么我不推荐写 main 函数?
Python 为什么没有 main 函数?为什么我不推荐写 main 函数?
21 0
|
存储 机器学习/深度学习 算法
3.6双端口RAM和多模块存储器
3.6双端口RAM和多模块存储器
340 0
3.6双端口RAM和多模块存储器
|
存储 算法
编译原理 实验三 LL(1)分析法(LL1分析表的自动生成)
编译原理 实验三 LL(1)分析法(LL1分析表的自动生成)
430 0
编译原理 实验三 LL(1)分析法(LL1分析表的自动生成)
|
9月前
二进制枚举
二进制枚举
40 0
|
Python
蓝桥杯第十一届国赛Python组试题C阶乘约数——唯一分解定理的应用
定义阶乘 n! = 1 × 2 × 3 × · · · × n。 请问 100! (100 的阶乘)有多少个约数。
190 0
蓝桥杯第十一届国赛Python组试题C阶乘约数——唯一分解定理的应用
|
资源调度 PyTorch 算法框架/工具
介绍一下nn.BCEWithLogitsLoss()
nn.BCEWithLogitsLoss()是PyTorch中用于二元分类问题的损失函数之一,它是一种基于sigmoid函数的交叉熵损失函数,可用于处理具有多个标签的多标签分类问题。
1573 0
|
设计模式
从零开始学设计模式(十八):状态模式(State Pattern)
状态模式(State Pattern)指的是将一个对象的状态从该对象中分离出来,封装到专门的状态类中,使得对象状态可以灵活变化,在其内部状态改变时改变它的行为。状态模式是一种对象行为型模式。它和策略模式有一点很像,就是将一些复杂的逻辑放在一个专门的上下文类中进行处理。
821 0
从零开始学设计模式(十八):状态模式(State Pattern)
|
机器学习/深度学习 数据采集 算法
机器学习知识点全面总结
机器学习知识点全面总结
488 0
机器学习知识点全面总结