洛谷P2380 狗哥采矿
P2380 狗哥采矿
题目背景
又是一节平静的语文课
狗哥闲来无事,出来了这么一道题
题目描述
一个n*m的矩阵中,每个格子内有两种矿yeyenum和bloggium,并且知道它们在每个格子内的数量是多少。最北边有bloggium的收集站,最西边有 yeyenum 的收集站。现在要你在这些格子上面安装向北或者向西的传送带(每个格子只能装一种)。问最多能采到多少矿?
输入输出格式
输入格式:
第一行包含两个整数n,m,( 1 ≤ n ≤ 500, 1 ≤ m ≤ 500)。接下来n行m列,表示每个格子中可以传送到yeyenum的数量(小于1000),再接下来n行m列,表示每个格子中可以传送到bloggium的数量。n, m 同时为0结束。
输出格式:
每组测试数据仅输出一个数,表示最多能采到的矿。
输入输出样例
4 4 0 0 10 9 1 3 10 0 4 2 1 3 1 1 20 0 10 0 0 0 1 1 1 30 0 0 5 5 5 10 10 10 0 0
98
说明
传输过程中不能转弯,只能走直路。
/*我们定义f[i][j]f[i][j]为在以(i,j)(i,j)为右下角的子矩阵中的最大采矿量,由题意我们可知,如果(i,j)(i,j)是向左转移矿,那么(i,j-1)(i,j?1),一定也是向左,(i,j-2)(i,j?2)一直到(i,1)(i,1)都是向左,同理如果(i,j)(i,j)是向上转移矿,那么(i-1,j)(i?1,j),一定也是向上,(i-2,j)(i?2,j)一直到(1,j)(1,j)都是向左。这就可以其实我们用前缀和去维护一段区间的采矿量。在转移时,我们只关心当前(i,j)(i,j)的采矿方向。设A[i][j]A[i][j]为向上的前缀和,B[i][j]B[i][j]为向左的前缀和,那么转移方程f[i][j]=max(f[i-1][j]+B[i][j],f[[i][j-1]+A[i][j])f[i][j]=max(f[i?1][j]+B[i][j],f[[i][j?1]+A[i][j]). */ #include<iostream> #include<cstdio> #include<cstring> using namespace std; #define maxn 510 int n,m,a[maxn][maxn],b[maxn][maxn],f[maxn][maxn],ans; int main(){while(1){scanf("%d%d",&n,&m);if(n==0&&m==0)return 0;memset(f,0,sizeof(f));memset(a,0,sizeof(a));memset(b,0,sizeof(b));ans=0;int x;for(int i=1;i<=n;i++)for(int j=1;j<=m;j++){scanf("%d",&x);a[i][j]=a[i][j-1]+x;}for(int i=1;i<=n;i++)for(int j=1;j<=m;j++){scanf("%d",&x);b[i][j]=b[i-1][j]+x;}for(int i=1;i<=n;i++)for(int j=1;j<=m;j++){f[i][j]=max(f[i-1][j]+a[i][j],f[i][j-1]+b[i][j]);ans=max(f[i][j],ans);}printf("%d\n",ans);} }
转载于:https://www.cnblogs.com/thmyl/p/7608120.html
洛谷P2380 狗哥采矿相关推荐
- 洛谷P2380 狗哥采矿【DP】【绿】
Date:2022.03.25 题目描述 一个n*m的矩阵中,每个格子内有两种矿yeyenum和bloggium,并且知道它们在每个格子内的数量是多少.最北边有bloggium的收集站,最西边有 ye ...
- P2380 狗哥采矿 (二维dp)
原题链接:狗哥采矿 - 洛谷 思路:我一开始想的是,一个点往左走还是往上走与 它上面和左边的点走的方向有关系,但是感觉复杂交错.....然后看到了大佬的二维dp,其实Aij往左走,就让它左边的这一条都 ...
- 洛谷P4839 P哥的桶 线段树+线性基
传送门 题意:N个操作,第K个桶放一个X,查询L到R区间的桶任意数的异或最大值. P哥时不时地会找新女朋友,并把新找的女朋友丢进某个桶里面.我们用 1 k x 来表示P哥找了一个颜值为x的女朋友,并且 ...
- 洛谷P4839 P哥的桶【线段树+线性基】
题目描述 P哥现在有n个桶,他们排成了一排,这些桶可以装下任意多个女朋友.每个女朋友有一个固定的颜值 P哥时不时地会找新女朋友,并把新找的女朋友丢进某个桶里面.我们用1kx来表示P哥找了一个颜值为x的 ...
- Educational Codeforces Round 81 (Rated for Div. 2) F.Good Contest \ 洛谷 划艇 组合 计数dp
cf传送门 P3643 [APIO2016]划艇 文章目录 题意: 思路: 题意: aia_iai在[li,ri][l_i,r_i][li,ri]等概率随机选一个数,求aaa数组不增的概率. 思 ...
- 试试把OJ题意抽象成物理模型(洛谷P1007题题解,Java语言描述)
题目要求 P1007题目链接 分析 这题干出的,真有毒... 要是有这种指挥官,也是醉了... 言归正传,这题其实是可以贪心求解的,但我们还可以更加666... 事实上,题干上面那一大篇基本在扯,关键 ...
- 洛谷 P1919 【模板】A*B Problem升级版 【快速傅里叶变换 FFT】
[洛谷 P1919] [模板]A*B Problem升级版 题目大意 给你两个超大整数 a,ba,ba,b,问 a∗ba*ba∗b 其中 a,b≤101000000a,b\leq10^{1000000 ...
- 【蓝桥杯专题】 贪心(C++ | 洛谷 | acwing | 蓝桥)
菜狗现在才开始备战蓝桥杯QAQ 文章目录 [蓝桥杯专题] (C++ | 洛谷 | acwing | 蓝桥) 1055. 股票买卖 II AcWing 104. 货仓选址 传递糖果 AcWing 112 ...
- 信息学奥赛一本通 1927:【04NOIP普及组】花生采摘 | OpenJudge NOI 1.13 38:花生采摘 | 洛谷 P1086 [NOIP2004 普及组] 花生采摘
[题目链接] ybt 1927:[04NOIP普及组]花生采摘 OpenJudge NOI 1.13 38:花生采摘 洛谷 P1086 [NOIP2004 普及组] 花生采摘 [题目考点] 1. 模拟 ...
最新文章
- Spring Bean配置方式之一:Java配置
- C和汇编----字符串
- linux kill 子进程6,linux – Bash:杀死子进程中的所有进程
- java使用JMail通过QQ邮件服务器实现自动发送邮件
- Git branch 用法
- Linux下mysql主从同步备份master-slave详细配置
- [原]android解析pdf文件muPdf
- C语言函数大全 chm含示例
- 一篇文章带你登顶 MacBook高效工作环境配置
- 抖音内测语音直播交友 能够用声音打开社交的一扇门吗?
- 老牌下载站fixdown被挂马 威金蠕虫开始复苏
- matlab 凸多边形,matlab练习程序(多边形顶点凹凸性)
- HTML制作水波纹,怎样制作水波纹
- 【Power BI】分析仪在餐饮业中的应用
- 护眼灯真的可以保护眼睛吗?推荐五款达到护眼级别的灯
- python爬取股票行情_python爬取历史所有股票价格
- Android手机提示“未安装应用程序”
- php服务器搭建iis,PHP+IIS 服务器环境的搭建
- 局域网助手_WiFi换机助手下载-WiFi换机助手v1.0.3下载
- 看这里,你要的快速、批量PDF加水印工具!
热门文章
- CV08-数据预处理与数据增强
- 桌面应用程序 azure_如何开始使用Microsoft Azure-功能应用程序,HTTP触发器和事件队列...
- 桌面应用程序 azure_Azure Logic应用程序用例–黑色星期五
- 如何使用Redux-saga和ReactDnD测试React和Redux(哇!)
- Web漏洞扫描(一:利用WVS进行漏洞扫描)
- leetcode--两数之和--python
- 工作中感受到的消息中间件在分布式系统中的使用场景
- AlwaysVisibleControlExtender
- 查看mysql的编码格式
- Linux 如何通过命令查看一个文件的某几行(中间几行或最后几行)