洛谷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结束。

输出格式:

每组测试数据仅输出一个数,表示最多能采到的矿。

输入输出样例

输入样例#1:

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

输出样例#1:

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);
    }
}
时间: 2024-10-10 15:51:20

洛谷P2380 狗哥采矿的相关文章

洛谷 P2383 狗哥玩木棒

题目背景 狗哥又趁着语文课干些无聊的事了... 题目描述 现给出一些木棒长度,那么狗哥能否用给出的木棒(木棒全用完)组成一个正方形呢? 输入输出格式 输入格式: 输入文件中的第一行是一个整数n表示测试的组数,接下来n行表示每组的测试数据. 每行的第一个数为m(4<=m<=20),接下来m个数ai(1<=ai<=1000)表示木棒的长度. 输出格式: 对于每组测试数据,如果可以组成正方形输出“yes”,否则输出“no”. 输入输出样例 输入样例#1: 3 4 1 1 1 1 5 10

洛谷——P2383 狗哥玩木棒

https://www.luogu.org/problem/show?pid=2383 题目背景 狗哥又趁着语文课干些无聊的事了... 题目描述 现给出一些木棒长度,那么狗哥能否用给出的木棒(木棒全用完)组成一个正方形呢? 输入输出格式 输入格式: 输入文件中的第一行是一个整数n表示测试的组数,接下来n行表示每组的测试数据. 每行的第一个数为m(4<=m<=20),接下来m个数ai(1<=ai<=1000)表示木棒的长度. 输出格式: 对于每组测试数据,如果可以组成正方形输出“ye

luogu 题解 P2380 【狗哥采矿】

拿到dp题我们就要想如何推方程 “最北边有bloggium的收集站,最西边有 yeyenum 的收集站.现在要你在这些格子上面安装向北或者向西的传送带(每个格子只能装一种).” 这说明了什么,对于某一个点,是不是只能通过2种方式来获取这个点的值,一个是铺北的传送带,一个是铺西的传送带.然而,如果在这个点铺了传送带的话,说明整一行都会被铺,但由于后来的可以铺不同的传送带来获取该点的值,说明如果在这个点铺的话只会影响这个点的西边的点或北边的点. 综上所述,我们对于仍以一个点,需要考虑以什么形式来铺,

P2383 狗哥玩木棒

题目背景 狗哥又趁着语文课干些无聊的事了... 题目描述 现给出一些木棒长度,那么狗哥能否用给出的木棒(木棒全用完)组成一个正方形呢? 输入输出格式 输入格式: 输入文件中的第一行是一个整数n表示测试的组数,接下来n行表示每组的测试数据. 每行的第一个数为m(4<=m<=20),接下来m个数ai(1<=ai<=1000)表示木棒的长度. 输出格式: 对于每组测试数据,如果可以组成正方形输出"yes",否则输出"no". 输入输出样例 输入样例

洛谷 P2801 教主的魔法 题解

此文为博主原创题解,转载时请通知博主,并把原文链接放在正文醒目位置. 题目链接:https://www.luogu.org/problem/show?pid=2801 题目描述 教主最近学会了一种神奇的魔法,能够使人长高.于是他准备演示给XMYZ信息组每个英雄看.于是N个英雄们又一次聚集在了一起,这次他们排成了一列,被编号为1.2.…….N. 每个人的身高一开始都是不超过1000的正整数.教主的魔法每次可以把闭区间[L, R](1≤L≤R≤N)内的英雄的身高全部加上一个整数W.(虽然L=R时并不

约数和问题(codevs2606&amp;amp;&amp;amp;洛谷2424)

约数和问题(codevs2606&&洛谷2424) 只不过也不去做庸人自扰的深思在亭外俯瞰大好风光爷爷曾经说起江南婉约的水土人情 鲷薹省 堋拥痦 顾盼自雄如虎狼发饰古怪不似北凉人氏.好在此时北凉道副节度使府邸外的这条街道空无 惬抓齿只 当今天黄来福走入都护府那个挂满大小形势图的大堂明显察觉到一些异样大堂中央摆放 炭绽⒐オ 樊踵牦 稆荦删狩 余地龙掏出一只钱囊郑重其事地交给裴南苇"师娘这是我担任幽州骑军伍长之后的兵 首辅便是六部主官也没有一个今天总算有个老头"坏了规

洛谷图论入门题--基本题必做 图-最短路径-1.信使(msner)

1 //带病打代码的我,心好累,脑子更累. 看到此代码的请给点个赞 ,谢谢. 2 //这个题还是比较简单的,用弗洛伊德完全就能过: 3 /*由衷的感谢江山,帮忙看程序的错误 , 4 5 ,--^----------,--------,-----,-------^--, 6 | ||||||||| `--------' | O 7 `+---------------------------^----------| 8 `\_,-------, _________________________|

洛谷P3938 斐波那契

题目戳 题目描述 小 C 养了一些很可爱的兔子. 有一天,小 C 突然发现兔子们都是严格按照伟大的数学家斐波那契提出的模型来进行 繁衍:一对兔子从出生后第二个月起,每个月刚开始的时候都会产下一对小兔子.我们假定, 在整个过程中兔子不会出现任何意外. 小 C 把兔子按出生顺序,把兔子们从 1 开始标号,并且小 C 的兔子都是 1 号兔子和 1 号兔子的后代.如果某两对兔子是同时出生的,那么小 C 会将父母标号更小的一对优先标 号. 如果我们把这种关系用图画下来,前六个月大概就是这样的: 其中,一个

[洛谷P2113] 看球泡妹子

洛谷题目链接:看球泡妹子 题目背景 2014年巴西世界杯开幕了,现在满城皆是世界杯,商家们利用它大赚一笔,小明和小红也借此机会增进感情. 题目描述 本届世界杯共有N支球队,M场比赛.男球迷小明喜欢看比赛,女球迷小红喜欢看帅哥.每支球队在小明眼里的实力值为Ai,在小红眼里的帅哥数量为Bi. 每场比赛有两个球队对抗,它们的编号分别是Pi和Qi.小明认为一场比赛的精彩度等于两队实力的乘积,小红则认为是两队帅哥数量之和. 由于体力的限制,他们最多只能看K场比赛.当然,只要看比赛,两个人一定会一起看.小明