首页 > 其他分享 >洛谷P1004

洛谷P1004

时间:2024-09-15 10:51:46浏览次数:13  
标签:第一遍 洛谷 P1004 最佳答案 二维 方格 ---------- dp

题目传送门:传送门p1004

题目背景

NOIP 2000 提高组 T4

题目描述

设有 N×NN×N 的方格图 (N≤9)(N≤9),我们将其中的某些方格中填入正整数,而其他的方格中则放入数字 00。如下图所示(见样例):

某人从图的左上角的 AA 点出发,可以向下行走,也可以向右走,直到到达右下角的 BB 点。在走过的路上,他可以取走方格中的数(取走后的方格中将变为数字 00)。
此人从 AA 点到 BB 点共走两次,试找出 22 条这样的路径,使得取得的数之和为最大。

输入格式

输入的第一行为一个整数 NN(表示 N×NN×N 的方格图),接下来的每行有三个整数,前两个表示位置,第三个数为该位置上所放的数。一行单独的 00 表示输入结束。

输出格式

只需输出一个整数,表示 22 条路径上取得的最大的和。

输入输出样例

输入 #1

8
2 3 13
2 6  6
3 5  7
4 4 14
5 2 21
5 6  4
6 3 15
7 2 14
0 0  0

输出 #1

67

说明/提示

数据范围:1≤N≤91≤N≤9。

一道四维dp题,虽然二维也能骗点分……

先说二维dp的思路:

二维的思路偏向贪心,即定义dp[ i ][ j ]为走到点[ i , j ]时的最佳选项,此时保证第一遍走的时候为最佳答案,第二遍走时为去掉第一遍走过的点时的最佳答案,保证两遍都是分别的最佳答案但非整体的最佳答案……,未懂的同学可以向下看,“特殊”情况:

0 0 2 3 0 0 0
0 0 3 0 0 0 0
0 0 3 0 0 0 0
0 0 0 0 0 0 0
0 0 0 0 4 0 0
0 0 0 0 4 0 0
0 0 0 0 4 0 0
如图,走第一遍可得出终点时最大值为20,去掉已经走过的点后图如下:
0 0 0 3 0 0 0
:----------: :----------: :----------: :----------: :----------: :----------: :----------:
0 0 0 0 0 0 0
0 0 0 0 0 0 0
0 0 0 0 0 0 0
0 0 0 0 0 0 0
0 0 0 0 0 0 0
0 0 2 0 0 0 0
然后会发现我们无法全部走完,也正符合贪心策略,“只注重眼前的利益”,因此此题使用二维dp绝非正解,上代码:


标签:第一遍,洛谷,P1004,最佳答案,二维,方格,----------,dp
From: https://blog.csdn.net/xiachake/article/details/142281165

相关文章

  • 洛谷P1006
    题目传送门:传送门p1006题目描述小渊和小轩是好朋友也是同班同学,他们在一起总有谈不完的话题。一次素质拓展活动中,班上同学安排坐成一个 mm 行 nn 列的矩阵,而小渊和小轩被安排在矩阵对角线的两端,因此,他们就无法直接交谈了。幸运的是,他们可以通过传纸条来进行交流。纸条要......
  • 【LGR-200-Div.4】洛谷入门赛 #27 A-H题解
    A#include<bits/stdc++.h>usingnamespacestd;typedeflonglongll;mt19937rnd(time(0));#defineintlonglongtypedeftuple<int,int,int>tp;#definexfirst#defineysecondtypedefpair<int,int>pii;typedefpair<double,double>......
  • 洛谷题单指南-分治与倍增-P7167 [eJOI2020 Day1] Fountain
    原题链接:https://www.luogu.com.cn/problem/P7167题意解读:从喷泉任意一个圆盘倒水,水流经的圆盘直径必须递增,水最后流到哪个圆盘。解题思路:1、枚举法有30%的数据范围在N<=1000,Q<=1000,因此枚举也可以得到30分。可以通过单调栈预计算每个圆盘后面第一个直径更大的圆盘位置Next[......
  • 【洛谷 P5266】【深基17.例6】学籍管理 题解(映射+分支)
    【深基17.例6】学籍管理题目描述您要设计一个学籍管理系统,最开始学籍数据是空的,然后该系统能够支持下面的操作(不超过条):插入与修改,格式1NAMESCORE:在系统中插入姓名为NAME(由字母和数字组成不超过20个字符的字符串,区分大小写),分数为()的学生。如果已经有同名的学生则更新这名......
  • 洛谷P8208 [THUPC2022 初赛] 骰子旅行 题解 期望DP
    题目链接:https://www.luogu.com.cn/problem/P8208解题思路:定义\(d_u\)表示节点\(u\)的出度,定义\(V_u\)表示节点\(u\)一步能够走到的节点的集合。定义状态\(p_{u,c,v}\)表示从节点\(u\)出发走恰好\(c\)步的情况下,至少经过一次节点\(v\)的概率。则:若\(v=......
  • 洛谷P10504 守卫者的挑战 题解 概率DP
    题目链接:https://www.luogu.com.cn/problem/P10504状态\(f_{i,s,k}\)表示:当前正面临第\(i\)项挑战(此时第\(1\simi-1\)项挑战已完成,第\(i\)项挑战还没开始);目前已经挑战成功了\(s\)项(即第\(1\simi-1\)项挑战中共有\(s\)项挑战成功,\((i-1)-s\)项没挑战成功);......
  • 今日打卡:洛谷:P1248 加工生产调度/P1251 餐巾计划问题
    昨天虽然打了卡,但是因为时间问题,所以没做题,今天补回来。今天的运势也真服了,我今天没出过门,也不会装逼啊!还有,我不开电脑怎么做题啊?请教问题也找不到人啊!P1248加工生产调度:#include<bits/stdc++.h>usingnamespacestd;structnumber{ intnum,ind; boolsign; boolo......
  • 洛谷题单指南-分治与倍增-P1226 【模板】快速幂
    原题链接:https://www.luogu.com.cn/problem/P1226题意解读:快速幂模版题。解题思路:1、分治法要计算a^b,可以对b分情况讨论:如果b是偶数,即b=2t,a^b=a^t*a^t如果b是奇数,即b=2t+1,a^b=a*a^t*a^t很容易用递归实现100分代码:#include<bits/stdc++.h>usingnamespa......
  • 洛谷题单指南-分治与倍增-P1966 [NOIP2013 提高组] 火柴排队
    原题链接:https://www.luogu.com.cn/problem/P1966题意解读:计算两个序列∑(ai​−bi​)^2的最小值,对10^8-3取模。解题思路:1、贪心思路要使得两个序列对应位置元素之差的平方和最小,必须满足两个序列相对排序是一致的,什么意思?设a序列有两个元素:a1,a2,b序列有两个元素b1,b2当a1<a2,b......
  • 洛谷 P11021 [LAOI-6] 区间测速 题解
    题目传送门使用multisetmultiset可以看成一个序列,支持插入一个数或删除一个数,时间复杂度均为\(O(\logn)\),且能始终保证序列中的数是有序的,而且序列中可以存在重复的数(而set容器要求两两不同,且不保证有序)。一个基本事实:速度最大的时刻必然出现在两个相邻点之间。例如从......