题目链接

题目大意

给你n*m个方格,每个格子有对应的值

你从(1,1)出发到(n,m)每次只能往下往上往右,走过的点则不能走

求一条路线使得走过的路径的权值和最大

题目思路

如果只是简单的往下和往右走就是直接dp

而如果是可以往上走,那么就要设置dp维度

\(dp[i][j][0]代表(i,j)从左转移下来\)

\(dp[i][j][1]代表(i,j)从上转移下来\)

\(dp[i][j][2]代表(i,j)从下转移下来\)

这个dp显然循环是要从先枚举列,再枚举行

预处理第一列,求答案即可

代码

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const ll INF=0x3f3f3f3f3f3f3f3f;
const int maxn=1e3+5;
int n,m;
int a[maxn][maxn];
ll dp[maxn][maxn][3];
int main(){
scanf("%d%d",&n,&m);
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
scanf("%d",&a[i][j]);
}
}
memset(dp,-0x3f,sizeof(dp));
dp[0][1][1]=0;
for(int i=1;i<=n;i++){
dp[i][1][1]=dp[i-1][1][1]+a[i][1];
}
for(int j=2;j<=m;j++){
for(int i=1;i<=n;i++){
dp[i][j][0]=max({dp[i][j-1][0],dp[i][j-1][1],dp[i][j-1][2]})+a[i][j];
}
for(int i=2;i<=n;i++){
dp[i][j][1]=max({dp[i-1][j][0],dp[i-1][j][1]})+a[i][j];
}
for(int i=n-1;i>=1;i--){
dp[i][j][2]=max({dp[i+1][j][2],dp[i+1][j][0]})+a[i][j];
}
}
printf("%lld\n",max(dp[n][m][1],dp[n][m][0]));
return 0;
}

方格取数(number) 题解(dp)的更多相关文章

  1. HDU 1565 方格取数(1) 轮廓线dp

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=1565 方格取数(1) Time Limit: 10000/5000 MS (Java/Others) ...

  2. codevs_1043 方格取数(棋盘DP)

    1043 方格取数 2000年NOIP全国联赛提高组  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 钻石 Diamond 题解       题目描述 Description ...

  3. tyvj 1884 [NOIP2000T4]方格取数 || codevs 1043 dp

    P1884 [NOIP2000T4]方格取数 时间: 1000ms / 空间: 131072KiB / Java类名: Main 背景 [noip2000T4]方格取数 描述 设有N*N的方格图(N& ...

  4. HRBUST - 1214 NOIP2000提高组 方格取数(多线程dp)

    方格取数 设有N*N的方格图(N<=10),我们将其中的某些方格中填入正整数,而其他的方格中则放人数字0.如下图所示(见样例 ,黄色和蓝色分别为两次走的路线,其中绿色的格子为黄色和蓝色共同走过的 ...

  5. P1004 方格取数(四维dp)

    P1004 方格取数 思路如下 这题是看洛谷大佬的思路才写出来的,所以我会把大佬的思路展示如下: 1⃣️:我们可以找到一个叫思维dp的东西,dp[i][j][k][l],其中前两维表示一个人从原点出发 ...

  6. P1004 方格取数——奇怪的dp

    P1004 方格取数 题目描述 设有 \(N\times N\) 的方格图 \((N\leq 20)\),我们将其中的某些方格中填入正整数,而其他的方格中则放入数字 \(0\) .如下图所示(见样例) ...

  7. hdu2167 方格取数 状态压缩dp

    题意:      方格取数,八个方向的限制. 思路:      八个方向的不能用最大流了,四个的可以,八个的不能抽象成二分图,所以目测只能用dp来跑,dp[i][j]表示的是第i行j状态的最优,具体看 ...

  8. 方格取数(多线程dp,深搜)

    https://www.luogu.org/problem/P1004 题目描述 设有N×N的方格图(N≤9),我们将其中的某些方格中填入正整数,而其他的方格中则放入数字0.如下图所示(见样例): 某 ...

  9. 洛谷 P1004 方格取数 【多进程dp】

    题目链接:https://www.luogu.org/problemnew/show/P1004 题目描述 设有N*N的方格图(N<=9),我们将其中的某些方格中填入正整数,而其他的方格中则放 ...

  10. 8786:方格取数 (多线程dp)

    [题目描述] 设有N*N的方格图(N<=10),我们将其中的某些方格中填入正整数,而其他的方格中则放入数字0.某人从图的左上角的A 点出发,可以向下行走,也可以向右走,直到到达右下角的B点.在走 ...

随机推荐

  1. this.$nextTick的用法

    element-ui中有一个动态添加tag的组件,平常状态是按钮,点击后变成输入框:那么这里的话,希望按钮点击后,input输入框被选中 这里二者的切换依赖于inputVisible这个值,当按钮点击 ...

  2. NB-IoT技术的低成本因素是来源于什么

    一套成熟的蜂窝物联网应用体系,涉及NB-IoT芯片.通信模组.UE.运营商网络.数据流量费用.通信协议栈.物联网平台.垂直应用软件.云平台.大数据.工程安装.运营维护等多个方面.对于物联网终端的海量部 ...

  3. lora技术在电力行业的应用

    智能电网的目标是建立一个高速通信网络之上的传统电网.它通过传感,分析,预测,决策和控制提供稳定,高效的电力供应.传统电网分为三个主要区域S-发电,输电和配电.先进的计量系统是使这种传统电网智能化的基础 ...

  4. Django项目打分系统

    Django项目之个人网站 关注公众号"轻松学编程"了解更多. Github地址:https://github.com/liangdongchang/MyWeb.git 感兴趣的可 ...

  5. [Luogu P1829] [国家集训队]Crash的数字表格 / JZPTAB (莫比乌斯反演)

    题面 传送门:洛咕 Solution 调到自闭,我好菜啊 为了方便讨论,以下式子\(m>=n\) 为了方便书写,以下式子中的除号均为向下取整 我们来颓柿子吧qwq 显然,题目让我们求: \(\l ...

  6. 辨析:IIR(Infinite Impulse Response)与FIR(Finite Impulse Response)

    IIR和FIR系统描述的是系统的抽样响应特性,其中$ x(n)=\delta(n) $ 举例:一个平均器的系统是FIR系统,因为它的抽样响应仅在变量n取某3个值的时候有值,是有限长的:一阶自回归模型由 ...

  7. XJOI 夏令营501-511测试11 游戏

    Alice和Bob两个人正在玩一个游戏,游戏有很多种任务,难度为p的任务(p是正整数),有1/(2^p)的概率完成并得到2^(p-1)分,如果完成不了,得0分.一开始每人都是0分,从Alice开始轮流 ...

  8. Ubuntu 18.04.2 LTS美化方案

    Ubuntu 18.04.2 LTS美化方案记录 根据个人经验,我将Ubuntun美化分为四个部分:1)桌面:2)对话框界面:3)图标:4)登录及锁屏界面:5)终端.由于Ubuntu系统默认采用GNO ...

  9. LSV又新增13个地质图!量测对比分析全都能搞定

    对于地质工作者来说,地质图是个十分重要的参考资料.随着国家解密的地质资料越来越多,能够有效的把各种地质资料结合起来,进而提高地质工作者的作业效率,是十分有意义的. LSV(LocaSpaceViewe ...

  10. 14flask 渲染富文本编辑器

    转载一个flask 渲染富文本编辑器: https://blog.csdn.net/qq_32198277/article/details/53355249 这里会产生一个问题: 通过富文本编辑器的数 ...