题目描述

小渊和小轩是好朋友也是同班同学,他们在一起总有谈不完的话题。一次素质拓展活动中,班上同学安排做成一个 m 行 n 列的矩阵,而小渊和小轩被安排在矩阵对角线的两端,因此,他们就无法直接交谈了。幸运的是,他们可以通过传纸条来进行交流。纸条要经由许多同学传到对方手里,小渊坐在矩阵的左上角,坐标 (1,1 ),小轩坐在矩阵的右下角,坐标 (m,n) 。从小渊传到小轩的纸条只可以向下或者向右传递,从小轩传给小渊的纸条只可以向上或者向左传递。

在活动进行中,小渊希望给小轩传递一张纸条,同时希望小轩给他回复。班里每个同学都可以帮他们传递,但只会帮他们一次,也就是说如果此人在小渊递给小轩纸条的时候帮忙,那么在小轩递给小渊的时候就不会再帮忙。反之亦然。

还有一件事情需要注意,全班每个同学愿意帮忙的好感度有高有低(注意:小渊和小轩的好心程度没有定义,输入时用 0 表示),可以用一个 0−100 的自然数来表示,数越大表示越好心。小渊和小轩希望尽可能找好心程度高的同学来帮忙传纸条,即找到来回两条传递路径,使得这 2 条路径上同学的好心程度之和最大。现在,请你帮助小渊和小轩找到这样的 2 条路径。

输入输出格式

输入格式:

输入文件,第一行有 2 个用空格隔开的整数 m 和 n ,表示班里有 m 行 n 列。

接下来的 m 行是一个 m×n 的矩阵,矩阵中第 i 行 j 列的整数表示坐在第 i 行 j 列的学生的好心程度。每行的 n 个整数之间用空格隔开。

输出格式:

输出文件共一行,包含一个整数,表示来回 2 条路上参与传递纸条的学生的好心程度之和的最大值。

输入输出样例

输入样例#1:

3 3
0 3 9
2 8 5
5 7 0

输出样例#1:

34

源代码

#include <iostream>
using namespace std;int max(int x,int y,int z,int t)
{int temp=x;if (temp<y) temp=y;if (temp<z)  temp=z;if (temp<t)  temp=t;return temp;
}
int dp[55][55][55][55]={0};
int main()
{int n,m;int impression[55][55];int i,j,k,l;cin>>n>>m;//输入行数、列数for (i=1;i<=n;i++)for (j=1;j<=m;j++) cin>>impression[i][j];//输入好感度for(i=1;i<=n;i++)//从左上到右下的行数for(j=1;j<=m;j++)//从左上到右下的列数for(k=1;k<=n;k++)//从右下到左上的行数for(l=j;l<=m;l++)//从右下到左上的列数{dp[i][j][k][l]=max(dp[i][j-1][k-1][l],dp[i][j-1][k][l-1],dp[i-1][j][k][l-1],dp[i-1][j][k-1][l])+impression[i][j]+impression[k][l];if(i==k&&j==l) dp[i][j][k][l]-=impression[i][j];//保证传递不重复}/*impression[i][j]是从左上到右下impression[k][l]是从右下到左上[i][j-1][k-1][l]是左上右移和右下上移[i][j-1][k][l-1]是左上右移和右下左移[i-1][j][k-1][l]是左上下移和右下上移[i-1][j][k][l-1]是左上下移和右下左移*/cout<<dp[n][m][n][m]<<endl;return 0;
}

传纸条(洛谷-P1006)相关推荐

  1. 洛谷P1006 传纸条 (棋盘dp)

    好气,在洛谷上交就过了,在caioj上交就只有40分 之前在51nod做过这道题了. https://blog.csdn.net/qq_34416123/article/details/8180902 ...

  2. 洛谷P1006 传纸条(多维DP)

    小渊和小轩是好朋友也是同班同学,他们在一起总有谈不完的话题.一次素质拓展活动中,班上同学安排做成一个mm行nn列的矩阵,而小渊和小轩被安排在矩阵对角线的两端,因此,他们就无法直接交谈了.幸运的是,他们 ...

  3. 不止代码 洛谷P1006 传纸条(dp)

    传送门 走两次 dp[x1][y1][x2][y2]表示两条路分别到两个点的坐标后的最大值 为了防止走重,dp[x1][y1][x1][y1]赋值为无穷小 时间复杂度O(n^4) 代码 #includ ...

  4. 洛谷题库答案(持续更新)

    p1000 超级玛丽游戏  洛谷 p1000 超级玛丽游戏_cyyyyds857的博客-CSDN博客 p1001 A+B problem  A+B problem_cyyyyds857的博客-CSDN ...

  5. 洛谷1006 传纸条

    题目描述 小渊和小轩是好朋友也是同班同学,他们在一起总有谈不完的话题.一次素质拓展活动中,班上同学安排做成一个m行n列的矩阵,而小渊和小轩被安排在矩阵对角线的两端,因此,他们就无法直接交谈了.幸运的是 ...

  6. 动态规划算法练习:蓝桥杯,洛谷的传纸条游戏的三种解法

    目录 方法一 方法二 方法三 方法一 package extraExercise; /*算法训练 传纸条描述小渊和小轩是好朋友也是同班同学,他们在一起总有谈不完的话题.一次素质拓展活动中,班上同学安排 ...

  7. 210807算法日记:文件后缀数据点的生成洛谷数据点的上传

    1.常见的文件后缀 后缀名 含义 .exe 可执行程序 .txt 文本文件 .doc/.docx 纯文字文件(word) .zip 压缩包 .jpeg/.jpg 图片 2.数据点的生成 #includ ...

  8. 【题解】洛谷 P8874 [传智杯 #5 初赛] F-二人的大富翁游戏

    洛谷 P8874 [传智杯 #5 初赛] F-二人的大富翁游戏 题目链接 大模拟,模拟就完事了 数组的解释 题目中的坐标为1到n,为了方便取模操作我们使用0到n-1 c [ i ] [ j ] c[i ...

  9. 洛谷 深基 第4部分 基础数学与数论(19-21课)

    洛谷 深基 第4部分 基础数学与数论  第19章 位运算与进制转换 P1143 进制转换 https://www.luogu.com.cn/problem/P1143 洛谷P1143 进制转换的Pyt ...

最新文章

  1. 简单使用DESeq2/EdgeR做差异分析
  2. mysql创建用户报错ERROR 1290
  3. OpenCV copyMakeBorder()来拓展边界
  4. clickhouse 获取几天前的日期
  5. Windows Media Services 9 系列常见问题解答
  6. endnote x8安装办法
  7. c语言计算器程序设计,c语言计算器代码程序设计报告.docx
  8. 御剑情缘gm.php,御剑情缘手工端
  9. 信息论 基础知识(一)
  10. word文档中打钩的8种方法【实用】
  11. n位吸血鬼数字的算法
  12. 从零开始实现Unity光照模型_02_为Shader添加简单的多光源支持_技术美术基础学习记录
  13. vue+element ui 走马灯添加图片+图片自适应
  14. iMazing2.14.6Mac最新版iOS苹果设备管理器
  15. c语言自我介绍范文,一分钟面试自我介绍范文【五篇】
  16. lua fadeOut
  17. 综述(十六)北京智慧城市发展规划的政策分析
  18. [转] 心态是最大的本钱;人无完人,重要的是怎么做人
  19. 基于Python,从零开始,裸写一套期权定价程序
  20. 字体的故事之:衬线体的前世今生

热门文章

  1. C++20 要来了!
  2. python平均数 中位数函数_R和python语言如何求平均值,中位数和众数
  3. 美团面试官:讲清楚MySQL结构体系,立马发offer
  4. 华为被起诉了!你肯定想不到原告是谁!
  5. 老板:再用Log4j就收拾东西回家吧!
  6. Java 9 ← 2017,2019 → Java 13 ,来看看Java两年来的变化
  7. 原创 | 一文了解那些和Spring Bean有关的那些注解!
  8. 图解Kafka,一看就明白!
  9. HTML5 Canvas实现360度全景图
  10. Java并发编程(05):悲观锁和乐观锁机制