P2380狗哥采矿(状态不易设计)
描述:https://www.luogu.com.cn/problem/P2380
首先分析一下,易知传送带一定是要么向上,要么向右。且一定摆满了整个矩阵。
所以我们设 f [ i ] [ j ]表示:除了从1,1到 i , j 这个矩形之外的所有地区能获得的最大矿数。
那么从上一个状态到这一个状态,有两种情况:
①从f [ i ] [ j+1 ] 的状态,在1,j+1到i,j+1铺设一条传送带。
②从f [ i+1 ] [ j ] 的状态,在i+1,1到 i+1 , j 铺设一条传送带。
所以这两种情况的最大值就是f [ i ] [ j ] 的值。
考虑到每次都要求一段区间的和,我们可以分别维护两个横向,纵向的前缀和来优化。
至于为什么答案是 f [ 0 ] [ 0 ] ,因为即使枚举到了1,1代表的意思是除了1,1这个矩阵的收益
#include <bits/stdc++.h>
using namespace std;
int n,m;
int a[][],b[][];
int hang[][],lie[][];
int dp[][];//定义除1,1到i,j矩阵,能获得的最大收益
int main()
{
while(cin>>n>>m&&(n+m))
{
memset(hang,,sizeof(hang));
memset(lie,,sizeof(lie));
memset(dp,,sizeof(dp));
for(int i=;i<=n;i++) for(int j=;j<=m;j++) cin>>a[i][j];
for(int i=;i<=n;i++) for(int j=;j<=m;j++) cin>>b[i][j];
for(int i=;i<=n;i++) for(int j=;j<=m;j++) hang[i][j]=hang[i][j-]+a[i][j];//预处理前缀和
for(int j=;j<=m;j++) for(int i=;i<=n;i++) lie[j][i]=lie[j][i-]+b[i][j];
for(int i=n;i>=;i--)
for(int j=m;j>=;j--)
dp[i][j]=max(dp[i+][j]+hang[i+][j],dp[i][j+]+lie[j+][i]);
cout<<dp[][]<<endl;
}
}
P2380狗哥采矿(状态不易设计)的更多相关文章
- 洛谷P2380 狗哥采矿
P2380 狗哥采矿 题目背景 又是一节平静的语文课 狗哥闲来无事,出来了这么一道题 题目描述 一个n*m的矩阵中,每个格子内有两种矿yeyenum和bloggium,并且知道它们在每个格子内的数量是 ...
- 洛谷 P2380 狗哥采矿
题目背景 又是一节平静的语文课 狗哥闲来无事,出来了这么一道题 题目描述 一个n*m的矩阵中,每个格子内有两种矿yeyenum和bloggium,并且知道它们在每个格子内的数量是多少.最北边有blog ...
- P2380 狗哥采矿
#include<iostream> #include<algorithm> #include<cstring> ; using namespace std; in ...
- luogu 题解 P2380 【狗哥采矿】
拿到dp题我们就要想如何推方程 “最北边有bloggium的收集站,最西边有 yeyenum 的收集站.现在要你在这些格子上面安装向北或者向西的传送带(每个格子只能装一种).” 这说明了什么,对于某一 ...
- 洛谷——P2383 狗哥玩木棒
P2383 狗哥玩木棒 题目背景 狗哥又趁着语文课干些无聊的事了... 题目描述 现给出一些木棒长度,那么狗哥能否用给出的木棒(木棒全用完)组成一个正方形呢? 输入输出格式 输入格式: 输入文件中的第 ...
- 洛谷 P2383 狗哥玩木棒
题目背景 狗哥又趁着语文课干些无聊的事了... 题目描述 现给出一些木棒长度,那么狗哥能否用给出的木棒(木棒全用完)组成一个正方形呢? 输入输出格式 输入格式: 输入文件中的第一行是一个整数n表示测试 ...
- P2383 狗哥玩木棒
题目背景 狗哥又趁着语文课干些无聊的事了... 题目描述 现给出一些木棒长度,那么狗哥能否用给出的木棒(木棒全用完)组成一个正方形呢? 输入输出格式 输入格式: 输入文件中的第一行是一个整数n表示测试 ...
- 小梅哥FPGA数字逻辑设计教程——基于线性序列机的TLC5620型DAC驱动设计
基于线性序列机的TLC5620型DAC驱动设计 目录 TLC5620型DAC芯片概述: 2 TLC5620型DAC芯片引脚说明: 2 TLC5620型DAC芯片详细介绍: 3 TLC ...
- oracle约束约束状态和设计习惯
oracle约束状态有几个项目,会让人迷惑,分别是: enable/disable--是否启用/禁用 validate/invalidate--确认/不确认 deferrable/not deferr ...
随机推荐
- Docker之hello world
Docker Hello World Docker 允许你在容器内运行应用程序, 使用 docker run 命令来在容器内运行一个应用程序. 输出Hello world runoob@runoob: ...
- alg-最长回文字符串
class Solution { public: std::string longestPalindrome(const std::string& s) { if (s.empty()) { ...
- AJ学IOS(41)UI之核心动画 两行代码搞定3D转场
AJ分享,必须精品 效果: 代码: 其实代码很少,苹果都给封装好了 // 1.创建核心动画 CATransition *ca = [CATransition animation]; // 1.1动画过 ...
- 【做中学】第一个 Go 语言程序:漫画下载器
原文地址: 第一个 Go 语言程序:漫画下载器: https://schaepher.github.io/2020/04/11/golang-first-comic-downloader 之前学了点 ...
- Thinking in Java,Fourth Edition(Java 编程思想,第四版)学习笔记(八)之Polymorphism
Polymorphism is the third essential feature of an object-oriented programming language,after data ab ...
- PHP代码审计(初级篇)
一.常见的PHP框架 1.zendframwork: (ZF)是Zend公司推出的一套PHP开发框架 功能非常的强大,是一个重量级的框架,ZF 用 100%面向对象编码实现. ZF 的组件结构独一无二 ...
- XFS文件系统的备份与恢复
永久修改主机名:hostnamectl set-hostname oldboy临时修改主机名:hostname xfsdump备份xfsdump -f 备份的文件位置 要备份的分区或者磁盘 免交互备份 ...
- 全网最全C#实习面试题目
整个内容是我在春招面试时候整理的一些题目,里面涵盖有网上搬运的(由于当时没有记录来源,如果有转载没标注来源,请与我联系),还有我面试到的.整个排版很乱,后期我会一步一步整理.整个内容大概快有两万字.整 ...
- C. Beautiful Regional Contest
用前缀和写一直wa.. 思路:让金牌和银牌最少,通多增加铜牌的方式来扩大总奖牌的个数. #include<bits/stdc++.h> using namespace std; map&l ...
- Python巩固 - 第N天
一.函数解释: def fact(n, m = 1): s = 1 for j in range(1, n+1): s = s*j return n, m, s//m print(fact(10, 5 ...