题目:


在一个m行n列方格矩阵中,每一个方格内摆放着价值不等的宝贝(价值可正可负),让小明感到好奇的是,从左上角到达右下角的所有可能路线中,能捡到宝贝的价值总和最大是多少?而且这种达到最大值的路线 又有多少条?【注意:只能从一个格子向下或向右走到相邻格子,并且走到的格子宝贝一定会被捡起。】

输入格式:

第一行为整数m,n(均不大于100),下一行开始会有一个m行n列的整数方阵,对应方格矩阵中的宝贝价值(这些值的绝对值都不超过500)。

输出格式:

单独一行输出2个整数,分别为能捡到宝贝价值总和的最大值和达到最大值的路线数量,2个整数间隔一个空格。

输入样例:

在这里给出一组输入。例如:

4  5
2  -1  6  -2  9
-3  2  5  -5  1
5   8  3  -2  4
5   2  8  -4  7
输出样例:

对应的输出为:

26 3

解题思路:


两个dp数组,dp[i][j]记录到达(i,j)位置时捡起的宝贝总的最大价值,path[i][j]记录最多有多少条路线可以到达(i,j)

初始化时先把边界位置第一行第一列先确定好dp[i][j],其他位置初始化为0,因为有j-1,i-1,所有i,j都从1开始

都是继承上一步的结果,以求得最终的最优结果

ac代码:


#include <bits/stdc++>
#define maxn 101
#define inf 2147483648
using namespace std;
typedef long long ll;
int dp[maxn][maxn],path[101][101],a[maxn][maxn];
int main()
{//freopen("/Users/zhangkanqi/Desktop/11.txt","r",stdin);int n,m;memset(dp,0,sizeof(dp));scanf("%d %d",&n,&m);for(int i=1;i<=n;i++)for(int j=1;j<=m;j++)scanf("%d",&a[i][j]);for(int j=1;j<=m;j++)//第一行{dp[1][j]=dp[1][j-1]+a[1][j];path[1][j]=1;}for(int i=1;i<=n;i++)//第一列{dp[i][1]=dp[i-1][1]+a[i][1];path[i][1]=1;}for(int i=2;i<=n;i++){for(int j=2;j<=m;j++){if(dp[i-1][j]<dp[i][j-1])//上<左{dp[i][j]=dp[i][j-1]+a[i][j];path[i][j]=path[i][j-1];}else if(dp[i-1][j]>dp[i][j-1]){dp[i][j]=dp[i-1][j]+a[i][j];path[i][j]=path[i-1][j];}else//两者值相同{dp[i][j]=dp[i-1][j]+a[i][j];path[i][j]=path[i-1][j]+path[i][j-1];}}}printf("%d %d\n",dp[n][m],path[n][m]);return 0;
}

【天梯选拔月赛】寻宝路线(dp)相关推荐

  1. PTA 寻宝路线 (40 point(s))

    寻宝路线 (40 point(s)) 在一个m行n列方格矩阵中,每一个方格内摆放着价值不等的宝贝(价值可正可负),让小明感到好奇的是,从左上角到达右下角的所有可能路线中,能捡到宝贝的价值总和最大是多少 ...

  2. FZOJ 2014年11月份月赛 ytaaa(dp + RMQ)

    题目链接:http://acm.fzu.edu.cn/contest/problem.php?cid=140&sortid=3 Problem Description Ytaaa作为一名特工执 ...

  3. 天梯选拔:先序序列创建二叉树,输出先序序列、中序序列、后序序列并输出叶子结点数

    思路分析: 这道题考察二叉树的建立以及二叉树的前序遍历.中序遍历和后序遍历.首先按照先序建立二叉树.在这期间需要先建立一个结构体,包括当前节点的值,以及它的左儿子和右儿子.注意这里不能直接存左儿子和右 ...

  4. 51nod 2534 最小旅行路线------------------------------dp

    解析: 设f[i][0/1]:表示0/1两个人走到美丽值为i的最短距离 首先我们要知道的这两个人一开始必须都要在1的位置上. 所以初始的状态方程 f[1][0]=v[1][0]-1; f[1][1]= ...

  5. 2022天梯选拔补题1

    7-1 计算前40项之和 (5 分) 解题思路: 简单的输出题.观察题目中的式子,不难发现,每一项的分子是相等的,而分母则有一定的规律.以1为第一项,每一项的分母为该项数.且偶数项的要乘以-1..每一 ...

  6. 【csust】寻宝(贪心,思维)

    题干: Description 在一维坐标轴上有许多宝藏,总共n种宝藏,每种宝藏有k个.现在共k个人寻宝,k个人初始位置可以位于任意点.但是每人需要按指定顺序捡起宝藏(1->2->3-&g ...

  7. 长理2019选拔赛1.0

    寻宝 描述 在一维坐标轴上有许多宝藏,总共n种宝藏,每种宝藏有k个.现在共k个人寻宝,k个人初始位置可以位于任意点.但是每人需要按指定顺序捡起宝藏(1->2->3->-->n, ...

  8. csust2019集训队选拔赛题解

    第一次参加比赛 崩的实在是太惨了.. 只A了一道板子题(已经被自己菜哭了 没想到大家都掉线了 一起崩 这也给了我一个血的教训 以后比赛一定要多开几题 简直是在死撑着坐满五个小时 当时其实老早就想溜了( ...

  9. 【Unity】填坑,Unity接入Epic Online Service上架Epic游戏商城

    EOS SDK For Unity地址:https://github.com/PlayEveryWare/eos_plugin_for_unity_upm Epic是虚幻游戏引擎开发商,2018年12 ...

  10. 动态规划——1262:【例9.6】挖地雷

    1262:[例9.6]挖地雷时间限制: 1000 ms 内存限制: 65536 KB 提交数: 10831 通过数: 5266 [题目描述] 在一个地图上有n个地窖(n≤200),每个地窖中埋有一定数 ...

最新文章

  1. 谷歌等揭露「AI任务疑难」:存在局限的ImageNet等基准,就像无法代表「整个世界」的博物馆...
  2. 【转】Linux命令工具 top详解
  3. Android 系统开发_四大组件篇 -- Service 解析(用法)
  4. c语言随机抽奖小程序,小程序抽奖实现
  5. 设计模式之facade模式
  6. C++在哪几种情况只能用intialization list 而不能用assignment?
  7. Rafy 框架 - 幽灵插件(假删除)
  8. 解决输入框自动填充账号密码的问题
  9. python tab键自动补全_设置python中TAB键自动补全方法
  10. MySQL 基础 —— DDL(数据定义)、DCL(数据控制)
  11. [面试] C/C++ 语法(六)—— RTTI(运行时类型信息)
  12. 「微信同声传译」小程序插件:快速实现语音转文字、文本翻译、语音合成等能力
  13. SAN存储交换机配置
  14. 解决:在ubuntu下安装R语言ks包时的error:configuration failed for package ‘rgl’
  15. 将 html 项目打包成可执行 exe 文件
  16. Vue整合Markdown组件+SpringBoot文件上传+代码差异对比
  17. 微信小程序蓝牙打印(中文乱码已解决)-分包发送(安卓和苹果手机均兼容)
  18. “黑盒”下的攻击实现,真实世界的“人脸识别”遭遇危险!
  19. Windows 下解决 VsCode 使用 SSH 连接报 Bad owner or permissions on C:\\Users\\Administrator/.ssh/config 错误
  20. 软件工程师的职业建议

热门文章

  1. java有多少类库_Java类库和常用类库有哪些以及相关的介绍
  2. git push 报错提示 ! [rejected] dev -> dev (non-fast-forward)
  3. oracle flashback 功能,oracle 10g中开启flashback功能
  4. 通过数据,从键盘录入学生考试科目数,然后依次录入学的每一科分数.使用数组存储学生分数.然后输出总分,平均分,简单易理解
  5. ajax通过对象获得时间戳,从FullCalendar事件对象获取简单的时间戳
  6. ios html清除缓存图片,iOS 清理文件缓存(示例代码)
  7. linux拿虚拟机充当路由,Linux通过虚拟机模拟路由器实现主机跨路由通信
  8. matlab皮尔逊和斯皮尔曼,利用matlab计算Pearson和Spearman相关系数
  9. java list t 类_Java ListT 、List?、ListObject、ListE、ListU的区别
  10. position:relative/absolute无法冲破的等级