第九题:地宫取宝(12')

X 国王有一个地宫宝库。是 n x m 个格子的矩阵。每个格子放一件宝贝。每个宝贝贴着价值标签。
    地宫的入口在左上角,出口在右下角。
    小明被带到地宫的入口,国王要求他只能向右或向下行走。
    走过某个格子时,如果那个格子中的宝贝价值比小明手中任意宝贝价值都大,小明就可以拿起它(当然,也可以不拿)。
    当小明走到出口时,如果他手中的宝贝恰好是k件,则这些宝贝就可以送给小明。

请你帮小明算一算,在给定的局面下,他有多少种不同的行动方案能获得这k件宝贝。

【数据格式】

输入一行3个整数,用空格分开:n m k (1<=n,m<=50, 1<=k<=12)
    接下来有 n 行数据,每行有 m 个整数 Ci (0<=Ci<=12)代表这个格子上的宝物的价值
    要求输出一个整数,表示正好取k个宝贝的行动方案数。该数字可能很大,输出它对 1000000007 取模的结果。

例如,输入:
2 2 2
1 2
2 1
程序应该输出:
2

再例如,输入:
2 3 2
1 2 3
2 1 5
程序应该输出:
14

资源约定:
峰值内存消耗 < 256M
CPU消耗  < 1000ms

请严格按要求输出,不要画蛇添足地打印类似:“请您输入...” 的多余内容。

所有代码放在同一个源文件中,调试通过后,拷贝提交该源码。

注意: main函数需要返回0
注意: 只使用ANSI C/ANSI C++ 标准,不要调用依赖于编译环境或操作系统的特殊函数。
注意: 所有依赖的函数必须明确地在源文件中 #include <xxx>, 不能通过工程设置而省略常用头文件。

提交时,注意选择所期望的编译器类型。

快速解题思路:四维数组直接dfs记忆化啊,看到后面三个大题,就觉得这题最好下手,直接动手做,一个四维数组标记。

代码:(dfs记忆化 12’ 应该没问题)

#include <iostream>
#include <cmath>
#include <cstdio>
#include <cstring>
using namespace std;#define eps 10e-10
#define N 1000000007int ans;
int d[51][51][13][14];
int p[51][51];
int n,m,k;int dfs(int x,int y,int num,int maxvalue){if(d[x][y][num][maxvalue + 1] != -1){return d[x][y][num][maxvalue + 1];}int t = 0;if(x == n-1 && y == m-1){if(p[x][y] > maxvalue){if(num == k || num == k-1)t++;}else if(num == k){t ++;}return d[x][y][num][maxvalue + 1] = t;}if(x + 1 < n){if(p[x][y] > maxvalue){t += dfs(x+1,y,num+1,p[x][y]);t %= N;t += dfs(x+1,y,num,maxvalue);t %= N;}else {t += dfs(x+1,y,num,maxvalue);t %= N;}}if(y + 1 < m){if(p[x][y] > maxvalue){t += dfs(x,y+1,num+1,p[x][y]);t %= N;t += dfs(x,y+1,num,maxvalue);t %= N;}else {t += dfs(x,y+1,num,maxvalue);t %= N;}}d[x][y][num][maxvalue + 1] = t;return d[x][y][num][maxvalue + 1];
}int main(){while(cin>>n>>m>>k){for(int i = 0; i < n; ++i){for(int j = 0; j < m; ++j)cin>>p[i][j];}memset(d,-1,sizeof(d));d[0][0][0][0] = dfs(0,0,0,-1);cout<<d[0][0][0][0]<<endl;}return 0;
}

2014 蓝桥杯 预赛 c/c++ 本科B组 第九题:地宫取宝(12')相关推荐

  1. 2013蓝桥杯java试题_蓝桥杯2013决赛java本科b组试题.doc

    蓝桥杯2013决赛java本科b组试题.doc 试题一:公式求值问题描述输入n,m,k,输出下面公式的值.其中C_n^m是组合数,表示在n个人的集合中选出m个人组成一个集合的方案数.组合数的计算公式如 ...

  2. 2012年第三届蓝桥杯C/C++程序设计本科B组决赛 拼音字母(编程大题)

    2012年第三届蓝桥杯C/C++程序设计本科B组决赛题目汇总: http://blog.csdn.net/u014552756/article/details/51399827 拼音字母 在很多软件中 ...

  3. # 2017年蓝桥杯省赛cc++本科B组试题

    2017年蓝桥杯省赛c/c++本科B组试题 第一题:购物单 问题 小明刚刚找到工作,老板人很好,只是老板夫人很爱购物.老板忙的时候经常让小明帮忙到商场代为购物.小明很厌烦,但又不好推辞. 这不,XX大 ...

  4. 2019年第十届蓝桥杯 C / C ++省赛 B 组真题题解

    A: 组队 输入数据 编号 号位1 2 3 4 51 97 90 0 0 0 2 92 85 96 0 0 3 0 0 0 0 93 4 0 0 0 80 86 5 89 83 97 0 0 6 82 ...

  5. 2021 第十二届 蓝桥杯 国赛决赛 Java B组 真题 详细解析

    文章目录 2021 第十二届 Java B组 国赛 真题答案 详细解析 试题A: 整数范围 答案:255 分析: Code: 试题B: 纯质数 答案:1903 分析: Code: 试题C: 完全日期 ...

  6. 2019年第十届蓝桥杯C/C++ 省赛B组真题+题解

     答案和代码仅供参考,比赛时倒数第二题花了太多时间,导致没时间写填空题最后一题和大题最后一题,唉,总的来说今年的题目比去年的简单,今年的蓝桥杯可真是"暴力杯".先放这么多东西吧,以 ...

  7. 2022第十三届蓝桥杯省赛C/C++B组 真题题解

    目录 A.九进制转十进制 B.顺子日期 C.刷题统计 D.修剪灌木 E.X 进制减法 F.统计子矩阵 G.积木画 H.扫雷 I.李白打酒加强版 J.砍竹子 A.九进制转十进制 问题描述 九进制正整数( ...

  8. 蓝桥杯青少年创意编程python初级考察内容_第十一届蓝桥杯青少年创意编程scratch初级组编程题详解...

    点击上方"启迪少儿"即可关注 今年的12月15日是第十一届蓝桥杯青少赛的第二次选拔赛,安徽.北京.福建.广东.广西.河北.黑龙江.湖南.吉林.江苏.江西.辽宁.宁夏.山西.陕西.四 ...

  9. 2022年蓝桥杯 省赛 C/C++ B组 真题解析

    本题解为非官方题解,可能存在包括但不限于下列问题 答案错误 填空题答案速览 1478 14(有争议) 目录 填空题 A 九进制转十进制 (5分) B 顺子日期 (5分) 编程题 C 刷题统计 (10分 ...

最新文章

  1. 某大型银行深化系统之二十:异常规范
  2. Delphi 调用C#编写的WebService
  3. 函数作用域,闭包,数据类型的题目
  4. javascrpit树(未完)
  5. 格兰杰因果关系检验r语言_R语言系列第四期:R语言单样本双样本差异性检验
  6. Java通过引用操作对象的“共享”特性
  7. 测开5 - Python(模块、操作数据库、操作Excel、加密)
  8. 闲来无事研究一下酷狗缓存文件kgtemp的加密方式
  9. Scratch-贪吃蛇小游戏
  10. 有各组方差怎么算组间平方和_方差分析:组间离差平方和组内离差平方的定义是什么?...
  11. 2022电工(初级)操作证考试题及模拟考试
  12. MQTT——java简单测试(二)
  13. SIP: From ,Contact, Via 和 Record-Route/Route head字段详解
  14. 如何突破安全狗远程桌面防护
  15. C语言,百马百担暴力秒懂,有100匹马,驮100担货,大马驮3担,中马驮2担,两匹小马驮1担,要求一次性驮完,请问大马、中马、小马各几匹?
  16. SLAM【十一】建图
  17. 第三人称计算机获奖感言,个人获奖感言50字第三人称
  18. 计算机的创新知识,创新高中计算机知识学习的策略分析
  19. python html文本转为text文本
  20. TIA博途S7-1200学习笔记——数据类型

热门文章

  1. matlab中eig,Matlab中的eig函数和eigs函数的异同点 | 学步园
  2. CMD以及Dos命令 0o0
  3. 用计算机进行绘画教案,电脑绘画技巧教学设计
  4. 20190722海外小米和国内华为的关联唤醒调研
  5. PCL库安装下载(百度云盘链接)
  6. 【JMeter】计数器的使用
  7. 南大通用GBase8s 常用SQL语句(225)
  8. Day51 前端开发 浮动、定位 、js入门
  9. python模拟app操作_Python爬虫入门教程 49-100 Appium安装+操作51JOB_APP(模拟手机操作之一)手机APP爬虫-阿里云开发者社区...
  10. 初中信息技术用计算机做科学实验报告,平潭综合实验区教育局关于做好2018年初中英语口语、信息技术、综合实践活动、物理、化学、生物实验技能考查工作的通知...