【提高组NOIP2008】传纸条 题解

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

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

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

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

输入
输入文件message.in的第一行有2个用空格隔开的整数m和n,表示班里有m行n列(1<=m,n<=50)。

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

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

样例输入
3 3
0 3 9
2 8 5
5 7 0

样例输出
34

数据范围限制
30%的数据满足:1<=m,n<=10
100%的数据满足:1<=m,n<=50

思路

其实是一个很简单的dp,我能想到的有三种做法。

法1

第一种做法是四维dp,这也是最好想的,设f[i][j][k][l]为从小渊传到小轩的纸条到达(i,j),从小轩传给小渊的纸条到达(k,l)的路径上取得的最大的好心程度和。

完全可以换一个思路想,即求从给定的起点出发走到指定位置的两条最短严格不相交路线。

那么特别显然,转移方程是 f[i][j][k][l]=max( f[i][j-1][k-1][l] , f[i-1][j][k][l-1] , f[i][j-1][k][l-1] , f[i-1][j][k-1][l] )+a[i][j]+a[k][l]。

要小心l的枚举范围,应该是从j+1到m,只有这样,在枚举第二条路的时候可以控制下标的l不会和j有相等的可能,这样可以保证两条路一定不相交(想一想,为什么)

由于终点的值是0,所以目标状态就是f[n][m-1][n-1][m]。

如果你不想这样做,那就让l直接从1枚举,但需要加一个判断,判断当前的(i,j)和(k,l)是不是重合了,如果重合那就把f数组对应的这个地方在转移后减掉一个a[i][j]或者a[k][l]。

原数据比较弱,这个算法时间复杂度是O(n^2 * m^2)的,所以可以过。

法2

第二种做法为三维dp,如果这道题数据被加强了一点,那就应该用这个方法。

仔细观察,我们不难发现一个规律,对于每次转移,这两位同学的纸条走的步数总是相等的,也就是应该总有i+j = k+l = step,我们从这里考虑入手,简化一下那个方程。

我们枚举走的步数,同时枚举第一个人和第二个人的横坐标或者纵坐标,对,只枚举一个就好,另一个可以算出来。

我枚举的是横坐标。

但这样做第一维(也就是枚举步数那一维)要开两倍大小(步数最大有n+m-1),并且需要加入判断重合操作。

优化之后速度比上一个快很多,它的时间复杂度是O(n^2*(n+m)).

法3

第二种做法为二维dp,和第二种方法基本类似。
就是第二种方法,dp是只要用当前步数和前一个步数,所以可以开两个dp二位数组来压位。
空间小,时间一样。

洛谷P1006 [NOIP2008 提高组] 传纸条 题解 阅读详情

相关推荐

[NOIP2008 提高组] 传纸条 题解

[NOIP2008 提高组] 传纸条 题解

qq_33264292的博客 461

动态规划经典例题之传纸条

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

qxAi的博客 1万+

题解:洛谷 P1006 [NOIP 2008 提高组] 传纸条

班里每个同学都可以帮他们传递,但只会帮他们一次,也就是说如果此人在小渊递给小轩纸条的时候帮忙,那么在小轩递给小渊的时候就不会再帮忙。小渊和小轩希望尽可能找好心程度高的同学来帮忙传纸条,即找到来回两条传递路径,使得这两条路径上同学的好心程度之和最大。列的矩阵,而小渊和小轩被安排在矩阵对角线的两端,因此,他们就无法直接交谈了。从小渊传到小轩的纸条只可以向下或者向右传递,从小轩传给小渊的纸条只可以向上或者向左传递。输出文件共一行一个整数,表示来回两条路上参与传递纸条的学生的好心程度之和的最大值。

团爸讲算法 636

NOIP原题----传纸条解析

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

crosnken的博客 5744

小渊和小轩、辰辰的梦想等OJ题目分析及源码

对于初学动态规划的人很有帮助,采用C编写的。

ESP32连接PDM麦克风操作指南:新手入门必看

手把手教你如何将ESP32与PDM麦克风连接,采集音频数据并用于音频分类应用。内容涵盖硬件接线、代码配置及实际调试技巧,适合初学者快速上手esp32在声音识别场景中的使用。

weixin_42590539的博客 1329

P1006 [NOIP 2008 提高组] 传纸条 题解

每次准备摸鱼时都在这道题的界面。今天有空做做,顺便写一波题解,毕竟估值蹭蹭往下跳。P1004 [NOIP 2000 提高组] 方格取数P1006 [NOIP 2008 提高组] 传纸条。

2301_76224755 的博客,一只 OIER,只会 C++。 2739

Windows下用Caddy一键搞定LiveKit本地HTTPS部署(含自签名证书避坑指南)

本文详细介绍了在Windows本地开发环境中,如何利用Caddy服务器一键部署支持HTTPS和WSS的LiveKit实时通信服务。文章重点解决了自签名证书的生成与配置难题,提供了完整的避坑指南和防火墙设置,帮助开发者快速搭建安全的WebRTC测试环境,实现局域网内的实时音视频互动。

weixin_29274969的博客 579

题解:P1006 [NOIP 2008 提高组] 传纸条

本人习惯先n后m,所以下面的n和m均与题目相反。

Popandsoss2022的博客 1114

单卡也能玩转Qwen2.5-VL微调!3090实测Grounding任务调参技巧大全

本文详细介绍了如何在单张RTX 3090显卡上,通过梯度累积、BF16混合精度训练、梯度检查点等关键技术,成功微调Qwen2.5-VL多模态大模型以完成Grounding视觉定位任务。文章提供了从数据处理、参数配置到训练监控的完整实战调参技巧,为资源有限的开发者提供了可行的解决方案。

weixin_29098117的博客 423

Keil 5安装教程(C51与MDK共存)

目录前言MDK的安装C51的安装安装完成后的验证新建C51工程添加C51程序文件编译测试总结 前言 本篇文章将介绍嵌入式开发工具Keil 5的安装方法,并使MDK(Microcontroller Development Kit,开发stm32时会用到)和C51(51单片机C语言软件开发系统)共存。今后使用Keil 5可同时开发51单片机程序和ARM单片机程序,便于学习与从51到32的过渡。 注: 为防止商业纠纷,本篇文章不涉及文中软件的注册破解,请支持正版。 同时为了便于今后更深入的学习,本文不会介绍软件的

xushu_me的博客 6万+

洛谷题目 P1006 [NOIP2008 提高组] 传纸条 题解 (本题较难)

本题来源于2008年NOIp 提高组竞赛题目:传纸条,本题涉及到动态DP、图论里的费用流知识点,学过图论的都应该对这道题熟能生巧,可以说非常的简单,但是对于刚学图论的初学者来说也是一个挑战,本题较难将详细了解。我觉得太简单了!

C++老手 1027

COMSOL电弧放电仿真:四场耦合与磁流体建模实战指南

多物理场耦合仿真是现代工程中模拟复杂物理过程的重要手段。电弧本质上是电场、磁场、流场与温度场四场相互耦合的非线性系统,其行为由磁流体力学(MHD)方程描述。通过COMSOL等工具构建电弧模型,可准确预测温度分布、流场结构和电极烧蚀,为开关电器设计、等离子体应用等提供数据支撑。在高压电器开断、电弧切割、激光打孔等工程问题中,高效求解MHD耦合模型是关键。然而,电弧仿真涉及物性参数强非线性、边界条件设置、求解器配置以及移动网格处理等挑战。以二维轴对称电弧模型为例,系统梳理磁流体方程落地、多物理场耦合节点配置、收

weixin_30047059的博客 134

DeepSeek网页端撰写Noip2008提高组第三题传纸条题解

发布完后突发奇想,使用相同的提问词,用网页版【Deepseek+深度思考R1+联网搜索】得到的回复与【IMA+(DeepSeek or 混元)】的回复有什么不一样的体验呢?本文中我把用网页版【Deepseek+深度思考R1+联网搜索】得到的回复发布如下,请大家体验。为了求解传纸条问题,我们需要找到两条从左上到右下的路径,使得路径上的数值之和最大,并且路径除了起点和终点外不重复。

ZLOJ 735

渗透测试面试题

渗透测试面试题 一.思路流程 1.信息收集 服务器的相关信息(真实ip,系统类型,版本,开放端口,WAF等) 网站指纹识别(包括,cms,cdn,证书等),dns记录 whois信息,姓名,备案,邮箱,电话反查(邮箱丢社工库,社工准备等) 子域名收集,旁站,C段等 google hacking针对化搜索,pdf文件,中间件版本,弱口令扫描等 扫描网站目录结构,爆后台,网站banner,测试文件,...

千寻的博客 12万+

YOLOv8改进---BiFPN特征融合

yolov8结合BiFPN进行改进

qq_41920323的博客 4523

P1006 [NOIP2008 提高组] 传纸条(题解)

小渊和小轩是好朋友也是同班同学,他们在一起总有谈不完的话题。一次素质拓展活动中,班上同学安排坐成一个 m 行 n 列的矩阵,而小渊和小轩被安排在矩阵对角线的两端,因此,他们就无法直接交谈了。纸条要经由许多同学传到对方手里,小渊坐在矩阵的左上角,坐标 (1,1)(1,1),小轩坐在矩阵的右下角,坐标 (m,n)。还有一件事情需要注意,全班每个同学愿意帮忙的好感度有高有低(注意:小渊和小轩的好心程度没有定义,输入时用 00 表示),可以用一个 [0,100][0,100] 内的自然数来表示,数越大表示越好心。

2401_83239953的博客 1195

Jetson Orin Nano 平台适配IMX585 camera驱动调试记录

Jetson Orin Nano Devkit适配imx585 camera使用argus_camera捕获流,图片是黑色的用示波器来测量mipi信号,信号正常Jetpack版本: sensor参数: dts配置: 分析log: 如图: EBD有两行修改dts: 测试如下:log: 需要注意极性互换查看相应的原理图设置。可以使用设备树属性lane_polarity在任何lane上配置极性交换。例如, 尝试调整极性出现花屏 根据上述像素时钟配置说明调整为如下配置后,出图正常

jzwjzw19900922的博客 1320

IMA+(DeepSeek or 混元)撰写Noip2008提高组第三题传纸条题解

通过对撰写Noip2008提高组第三题传纸条题解这一案例,让IMA+DeepSeek和IMA+混元生成的回复,来了解这两个大模型各自的特点和功能及其对比。同时根据这两个回复,加深 对问题算法的理解。

ZLOJ 1241

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

洛谷P1006(传纸条[NOIP 2008 提高组])题解

洛谷P1006详解10000字

2201_75316840的博客 939

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

P1006 [NOIP 2008 提高组] 传纸条题解

我们可以发现,每当我们走一步,那么x坐标和y坐标之间总会有一个数加1。所以,我们可以用k来表示x坐标和y坐标的和,从而通过y坐标来计算出x坐标。由于k对于两条同时处理的路径可以是公共的,所以我们可以用f[k][y1​][y2​]来表示当前状态。我们可以用f[x1​][y1​][x2​][y2​]表示两次传递分别到(x1​,y1​)和(x2​,y2​)是能够获得的最大好感度。但是,这个数组的维度太高了,所以我们要对他降维。题目要求是从小渊到小轩再回到小渊,那么我们不妨从小渊开始求两条不重合的去小轩的路径。

mm890890的博客 371

P1006 [NOIP2008 提高组] 传纸条 题解

题目大意: 给定一张n*n的图,要求从左上角走到右下角,再从右下角走到左上角。每个点都有一个值,要求最大路径值,并且来回的路不能重复的点。 思路: 朴素做法是四维数组,dp[1][2][3][4]前两维是第一个点的坐标后两维是第二个点的坐标。 反思: 有个疑问,为什么最后的输出顺序是dp[n][m-1][n-1][m]而不能是dp[n-1][m][n][m-1]。 代码如下: #include<cstdio> #include<algorithm> using namespace

qq_41201328的博客 323

P1006 [NOIP2008 提高组] 传纸条题解

【题目链接】 P1006 【解题思路】 与这个一模一样,直接上code。 【CODE】 #include<iostream> using namespace std; int n,m,p; int x,y,z; long long a[51][51]; long long d[51][51][51][51]; int main() { cin>>n>>m; for (int i=1;i<=n;i++) for (int j=1;j<=m;j++)

FKJDASOI的博客 482

洛谷P1005 [NOIP2008 提高组] 传纸条 题解

洛谷P1005 [NOIP2008 提高组] 传纸题目题解

weixin_68756152的博客 221

P1006 [NOIP2008 提高组] 传纸条

P1006 [NOIP2008 提高组] 传纸条

青少年趣味编程 155

NOIP 2008提高 [传纸条] 题解&代码

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

魃魈魁鬾魑魅魍魉的博客 308
上一篇: 【NOIP2006PJ】Jam的计数法(count)题解
下一篇: 2020.05.02【NOIP普及组】模拟赛C组31总结
A_F_O
博客等级 码龄7年 52粉丝 1453原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值