每日一题 第九十七期 洛谷 [NOIP2000 提高组] 方格取数

news2025/1/11 1:48:09

[NOIP2000 提高组] 方格取数

题目背景

NOIP 2000 提高组 T4

题目描述

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

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

输入格式

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

输出格式

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

样例 #1

样例输入 #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 ≤ 9 1\le N\le 9 1N9

思路:本题考察dp, 根据闫氏dp分析法我们需要考虑状态表示和状态转移,我们可以同时进行两次的路径, 因此他们的步数应该是相同的, 即 步数 k = i1 + j1 = i2 + j2, 我们还可以考虑到只要两者的横坐标不相同两者的纵坐标一定不相同, 反之则以, 因此我们可以只枚举横坐标, 在根据步数k判断纵坐标, 一共走 2 * n步, 因此可以用dp[][][]来代表总步数为k时的两条路径的总和的最大数值,以上部分即为状态表示。接下来我们考虑状态转移, 我们可以知道一共有四种状态转移,从哪边到达每个点的这四种情况为:上上, 左上, 上左, 左左。由此我们能够写出来状态转移方程为:在这里插入图片描述

由此我们即可写代码了:

AC代码:

#include<bits/stdc++.h>

using namespace std;

typedef long long ll;
typedef pair<int, int>PII;
const int N=3e5+10;
const int MOD=9901;
const int INF=0X3F3F3F3F;
const int dx[]={-1,1,0,0,-1,-1,+1,+1};
const int dy[]={0,0,-1,1,-1,+1,-1,+1};
const int M = 1e6 + 10;

int n;
int w[15][15];
int dp[30][15][15];
int main()
{
	cin >> n;
	int a, b, c;
	while(cin >> a >> b >> c, a || b || c) w[a][b] = c;
	for(int k = 1; k <= n + n; k ++)//总步数
	{
		for(int i1 = 1; i1 <= n; i1 ++)//横坐标1
		{
			for(int i2 = 1; i2 <= n; i2 ++)//2
			{
				int j1 = k - i1, j2 = k - i2;
				if(j1 >= 1 && j1 <= n && j2 >= 1 && j2 <= n)
				{
					int t = w[i1][j1];
					if(i1 != i2) t += w[i2][j2];//说明没有重复
					dp[k][i1][i2] = max(dp[k][i1][i2], dp[k - 1][i1 - 1][i2 - 1] + t);
					dp[k][i1][i2] = max(dp[k][i1][i2], dp[k - 1][i1][i2 - 1] + t);
					dp[k][i1][i2] = max(dp[k][i1][i2], dp[k - 1][i1 - 1][i2] + t);
                	dp[k][i1][i2] = max(dp[k][i1][i2], dp[k - 1][i1][i2] + t);
				}//两次同时走路的状态转移
			}
		}
	}
	cout << dp[n + n][n][n] << endl;
	return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1656850.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

同步电机原理解析

同步电机 同步带年纪&#xff0c;顾名思义无论负载如何&#xff0c;都能以恒定的速度运转&#xff0c;它以高效率著称 这种恒速特性是通过恒定磁场和旋转磁场的相互作用实现的&#xff0c;与其他电机一样&#xff0c;同步电机由定子和转子组成&#xff0c;定子铁芯由硅片层叠而…

STC8增强型单片机开发 【GPIO的理解⭐⭐】

目录 一、引言 二、GPIO概述 三、GPIO的功能 1. 输入功能&#xff1a; 2. 输出功能 四、GPIO的配置方法 1. 选择GPIO端口和引脚&#xff1a; 2. 设置GPIO模式&#xff1a; 3. 配置GPIO参数&#xff1a; 五、GPIO应用实例 1. 硬件连接&#xff1a; 2. 编程实现&…

2.1初识Spark

Spark于2009年诞生&#xff0c;最初是加州大学伯克利分校的研究项目。2013年加入Apache孵化器项目&#xff0c;2014年成为Apache顶级项目。Spark以内存内运算技术为核心&#xff0c;包含多个计算框架&#xff0c;成为大数据计算领域的后起之秀&#xff0c;打破了Hadoop的基准排…

2.外卖点餐系统(Java项目 springboot)

目录 0.系统的受众说明 1.系统功能设计 2.系统结构设计 3.数据库设计 3.1实体ER图 3.2数据表 4.系统实现 4.1用户功能模块 4.2管理员功能模块 4.3商家功能模块 4.4用户前台功能模块 4.5骑手功能模块 5.相关说明 新鲜运行起来的项目&#xff1a;如需要源码数据库…

如何防止源代码泄露?彻底解决源代码防泄密的方法

SDC沙盒系统&#xff1a;数据安全的守护者 SDC沙盒系统&#xff0c;为研发型企业设计&#xff0c;实现了对数据的代码级保护&#xff0c;同时不影响工作效率和正常使用。系统通过自动加密敏感数据&#xff0c;并配合多种管控机制&#xff0c;有效防止了数据的泄露。 涉密可信…

Python专题:五、条件语句

流程控制语句 count&#xff08;&#xff09;字符串计数 句尾\分行写码 运行输入cmd 输入Python 回车进入shell python 解释器 shell模式 再给x1,没有结果出来 if条件语句关键词&#xff0c;x>5条件表达式&#xff0c;&#xff1a;条件结束&#xff0c;四个空格&#x…

压缩机继电器EOCRDS-30NY7Q升级后型号:EOCRDS3-30S

EOCR-DS3系列型号&#xff1a; EOCRDS3-05S EOCRDS-05S EOCRDS1-05S EOCRDS3-30S EOCRDS-30S EOCRDS1-30S EOCRDS3-60S EOCRDS-60S EOCRDS1-60S EOCRDS3-05W EOCRDS-05W EOCRDS1-05W EOCRDS3-30W EOCRDS-30W EOCRDS1-30W EOCRDS3-60W EOCRDS-60W EOCRDS1-60W EOCR-DS3T-…

Java:就业市场上的常青树-永远的宠儿

除了兴趣&#xff0c;我们学习编程最主要的目标是找一份好工作&#xff0c;选择合适的编程语言就非常重要了&#xff0c;毕竟选择大于努力&#xff0c;男怕选错行&#xff0c;学编程最怕选错语言。比如&#xff0c;如果你选Perl&#xff0c;那就糟糕了&#xff0c;基本上可以断…

「网络流 24 题」试题库 【最大流】

「网络流 24 题」试题库 思路 建立超级源点 S S S 和超级汇点 T T T&#xff0c;将每一类题目拆分为入点 i n in in 和出点 o u t out out&#xff0c;连边 i n → o u t in \rarr out in→out&#xff0c;边权为 k i k_i ki​&#xff0c;也就是所需的题目数量&#xf…

cannot import name ‘ForkProcess‘ from ‘multiprocessing.context‘问题解决

问题描述 cannot import name ForkProcess from multiprocessing.context 问题原因 ForkContext用于Unix系统。SpawnContext可以在 Windows 环境中使用 解决方案 改成SpawnProcess就可以运行了 将原来的ForkProcess修改为SpawnProcess wrappers.py脚本&#xff0c;下面的代…

Python学习——环境搭建

Python 介绍 Python&#xff08;英国发音&#xff1a;/ˈpaɪθən/ 美国发音&#xff1a;/ˈpaɪθɑːn/&#xff09;是一种广泛使用的解释型、高级编程、通用型编程语言&#xff0c;由吉多范罗苏姆创造&#xff0c;第一版发布于1991年。可以视之为一种改良&#xff08;加入…

QGraphicsView实现简易地图12『平移与偏移』

前文链接&#xff1a;QGraphicsView实现简易地图11『指定层级-定位坐标』 提供地图平移与偏移功能。地图平移是指将地图的中心点更改为给定的点&#xff0c;即移动地图到指定位置。地图偏移是指将当前视口内的地图向上/下/左/右/进行微调&#xff0c;这里偏移视口宽/高的四分之…

商务分析方法与工具(六):Python的趣味快捷-字符串巧妙破解密码本、身份证号码、词云图问题

Tips&#xff1a;"分享是快乐的源泉&#x1f4a7;&#xff0c;在我的博客里&#xff0c;不仅有知识的海洋&#x1f30a;&#xff0c;还有满满的正能量加持&#x1f4aa;&#xff0c;快来和我一起分享这份快乐吧&#x1f60a;&#xff01; 喜欢我的博客的话&#xff0c;记得…

【Pytorch】1.读取训练数据集

导入Dataset类 from torch.utils.data import Dataset # 注意是Dataset&#xff08;大写&#xff09;的才是类通过jupyter我们可以阅读一下Dataset类的具体使用方法 help(Dataset) # 或者直接 Dataset??我们可以看到具体对Dataset类的解释 从蓝色字体我们可以得出 所有的代…

【Vue】Vue packages version mismatch(vue 和 vue-template-compiler)

报错&#xff1a;Vue packages version mismatch 原因&#xff1a;vue和vue-template-compiler版本不一样解决&#xff1a;如上vue版本为 2.6.14&#xff0c;vue-template-comiler版本为2.7.16。将vue-template-comiler版本设置为和vue版本一致即可。 npm install vue-templat…

中国M2总量是两个美国,意味着什么

中国人民银行公布数据&#xff1a;2月末&#xff0c;我国广义货币(M2)余额299.56万亿元&#xff0c;同比增长8.7%。 2000年末我国M2仅13万亿元&#xff0c;2013年3月达到100万亿元&#xff1b;2020年1月突破200万亿元&#xff1b;2024年2月接近300万亿元&#xff0c; 与美欧日…

阵痛中的乳业产业,何时才能成为下一个啤酒产业?

说起饮品&#xff0c;近年来中国啤酒业中各大品牌齐齐聚焦高端化的趋势绝对值得一提。然而&#xff0c;与之相反&#xff0c;国内乳业却是仍未进入高端化阶段&#xff0c;甚至陷入了周期底部中。 图源&#xff1a;中国圣牧财报 增收降利 牧企承受巨大的供需缺口压力 从产业链…

【Docker】新手教程的第一个demo:Wordpress

1 任务简单介绍 WordPress是什么&#xff1a; 是一个常用博客软件简单易部署&#xff0c;只需要两个容器&#xff08;业务容器 数据库容器&#xff09; 本文借鉴博客&#xff0c;使用自建 WordPress 容器方法在Docker上部署Wordpress&#xff0c;本地环境为Mac时使用该博客…

基于Detectron2的计算机视觉实践

书籍&#xff1a;Hands-On Computer Vision with Detectron2: Develop object detection and segmentation models with a code and visualization approach 作者&#xff1a;Van Vung Pham&#xff0c;Tommy Dang 出版&#xff1a;Packt Publishing 书籍下载-《基于Detectr…

大数据Scala教程从入门到精通第五篇:Scala环境搭建

一&#xff1a;安装步骤 1&#xff1a;scala安装 1&#xff1a;首先确保 JDK1.8 安装成功: 2&#xff1a;下载对应的 Scala 安装文件 scala-2.12.11.zip 3&#xff1a;解压 scala-2.12.11.zip 4&#xff1a;配置 Scala 的环境变量 在Windows上安装Scala_windows安装scala…