P1086 [NOIP2004 普及组] 花生采摘

题目描述

鲁宾逊先生有一只宠物猴,名叫多多。这天,他们两个正沿着乡间小路散步,突然发现路边的告示牌上贴着一张小小的纸条:“欢迎免费品尝我种的花生!――熊字”。

鲁宾逊先生和多多都很开心,因为花生正是他们的最爱。在告示牌背后,路边真的有一块花生田,花生植株整齐地排列成矩形网格(如图一)。有经验的多多一眼就能看出,每棵花生植株下的花生有多少。为了训练多多的算术,鲁宾逊先生说:“你先找出花生最多的植株,去采摘它的花生;然后再找出剩下的植株里花生最多的,去采摘它的花生;依此类推,不过你一定要在我限定的时间内回到路边。”

我们假定多多在每个单位时间内,可以做下列四件事情中的一件:

  1. 从路边跳到最靠近路边(即第一行)的某棵花生植株;
  2. 从一棵植株跳到前后左右与之相邻的另一棵植株;
  3. 采摘一棵植株下的花生;
  4. 从最靠近路边(即第一行)的某棵花生植株跳回路边。

现在给定一块花生田的大小和花生的分布,请问在限定时间内,多多最多可以采到多少个花生?注意可能只有部分植株下面长有花生,假设这些植株下的花生个数各不相同。

例如在图2所示的花生田里,只有位于 (2,5),(3,7),(4,2),(5,4) 的植株下长有花生,个数分别为 13,7,15,9。沿着图示的路线,多多在 21 个单位时间内,最多可以采到 37 个花生。

注意:在采摘过程中不能回到路边。

输入格式

第一行包括三个整数,M,N和K,用空格隔开;表示花生田的大小为M×N(1≤M,N≤20),多多采花生的限定时间为K(0≤K≤1000)个单位时间。接下来的M行,每行包括N个非负整数,也用空格隔开;第i+1行的第j个整数Pij​(0≤Pij​≤500)表示花生田里植株(i,j)下花生的数目,0表示该植株下没有花生。

输出格式

一个整数,即在限定时间内,多多最多可以采到花生的个数。

输入输出样例

输入 #1

6 7 21
0 0 0 0 0 0 0
0 0 0 0 13 0 0
0 0 0 0 0 0 7
0 15 0 0 0 0 0
0 0 0 9 0 0 0
0 0 0 0 0 0 0

输出 #1

37

输入 #2

6 7 20
0 0 0 0 0 0 0
0 0 0 0 13 0 0
0 0 0 0 0 0 7
0 15 0 0 0 0 0
0 0 0 9 0 0 0
0 0 0 0 0 0 0

 

输出 #2

28

说明/提示

noip2004普及组第2题

思路

暴力枚举

完整代码

#include<bits/stdc++.h>
using namespace std;
int a[10001][10001],b[10001][10001];
int n, m, k;
int q, ans;
int main(){cin>>m>>n>>k;for (int i=1; i<=m; i++)for (int j=1; j<=n; j++){cin>>a[i][j];if (a[i][j]!=0){q++;b[q][1]=i;b[q][2]=j;b[q][3]=a[i][j];} }for(int i=1; i<=q; i++)for(int j=i+1; j<=q; j++){if (b[i][3]<b[j][3]){swap(b[i][3], b[j][3]); swap(b[i][1], b[j][1]); swap(b[i][2], b[j][2]);}}if (k>=(b[1][1]*2+1)) ans=b[1][3];else{cout << 0 << endl;return 0;}k=k-b[1][1]-1;for(int i=2; i<=q; i++){if (abs(b[i-1][1]-b[i][1])+abs(b[i-1][2]-b[i][2])+1+b[i][1]>k)break;else {ans+=b[i][3]; k=k-(abs(b[i-1][1]-b[i][1])+abs(b[i-1][2]-b[i][2])+1);}}    cout<<ans<<endl;return 0;
}

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

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

相关文章

Nacos为什么对于临时实例采用心跳检测,非临时实例采用主动询问?Nacos同时作为配置中心和注册中心有什么坏处?为什么Nacos可以抗住那么高的注册?

Nacos为什么对于临时实例采用心跳检测,非临时实例采用主动询问? Nacos 对于临时实例采用心跳检测&#xff0c;而对于非临时实例采用主动询问&#xff0c;这两种不同的健康检查机制是为了满足不同场景下的服务发现需求。具体分析如下&#xff1a; 临时实例的心跳检测&#xf…

一键部署Tesseract-OCR环境C++版本(Windows)

环境&#xff1a;Windows 10 工具&#xff1a;git vcpkg vscode cmake 库&#xff1a;Tesseract 一键部署Tesseract-OCR环境C版本&#xff08;Windows&#xff09; 分享这篇文章的原因很简单&#xff0c;就是为了让后续的朋友少走弯路。自己在搜索相关C版本的tesseract部署时…

MOS管、IGBT的区别

MOS管&#xff0c;即Metal-Oxide-Semiconductor Field-Effect Transistor&#xff0c;是我们常见的一种半导体器件&#xff0c;也被广泛称为MOSFET。 这种器件的工作原理独特且高效&#xff0c;主要是通过控制栅极电压来调控电流在两个源极和漏极之间的流动&#xff0c;这也是其…

【SQL Server】实验五 视图

1 实验目的 掌握SQL视图语句的基本使用方法&#xff0c;如CREATE VIEW、DROP VIEW。掌握视图更新、WITH CHECK OPTION等高级功能的使用。 2 实验内容 2.1 掌握SQL视图语句的基本使用方法 创建视图&#xff08;省略视图列名&#xff09;。创建视图&#xff08;不能省略列名的…

Vue.js+SpringBoot开发天沐瑜伽馆管理系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 数据中心模块2.2 瑜伽课程模块2.3 课程预约模块2.4 系统公告模块2.5 课程评价模块2.6 瑜伽器械模块 三、系统设计3.1 实体类设计3.1.1 瑜伽课程3.1.2 瑜伽课程预约3.1.3 系统公告3.1.4 瑜伽课程评价 3.2 数据库设计3.2.…

分享6款非常优质炫酷的前端动画特效(附在线演示)

分享6款非常不错的项目动画特效 其中有three.js特效、canvas特效、CSS动画、SVG特效等等 下方效果图可能不是特别的生动 那么你可以点击在线预览进行查看相应的动画特效 同时也是可以下载该资源的 CSS33D海盗船动画 基于纯CSS3的3D海盗船动画&#xff0c;该动画分两部分&…

QT 如何在QPushButton上播放gif(终极版)

在平时浏览网站&#xff0c;或者使用软件的时候&#xff0c;经常可以见到&#xff1a;在点击了某个按钮之后&#xff0c;按钮上会显示动图以及提示文字。在QT中&#xff0c;比较常见且简单的做法就是&#xff1a;给按钮设置一个layout&#xff0c;然后在这个layout里面添加QLab…

百度飞桨大模型训练营:人工智能与大语言模型

1 人工智能基础概念全景介绍 1.1 人工智能概念 解释这些概念 AI是计算机学科下的一个分支学科&#xff0c;旨在使用计算机使之能像人类一样学习和思考问题机器学习是AI的一个子集&#xff0c;它的一个重要特点就是不需要人去做显示编程&#xff08;不用手撕函数&#xff09;&…

性能测试什么时候开始?性能测试流程介绍

性能测试什么时候开始? 一般在系统功能稳定没有大的缺陷之后开始执行。但前期准备工作可以从系统需求分析时就开始&#xff1a;性能目标制定、场景获取、环境申请等。 一、制定性能测试目标 在特定的并发用户数下测试特定场景的响应时间 在一定的响应时间的要求下来测试特…

STM32的IAP讲解

stm32系列芯片的种类和型号 汇编文件种类型号startup_stm32f10x_cl.s互联型的器件STM32F105xx,STM32F107xxstartup_stm32f10x_hd.s大容量STM32F101xx,STM32F102xx,STM32F103xxstartup_stm32f10x_hd_vl.s大容量STM32F100xxstartup_stm32f10x_ld.s小容量STM32F101xx,STM32F10…

进程等待详解

一、进程等待的作用 我们都知道&#xff0c;当子进程已经结束而父进程还在执行时&#xff0c;子进程会变成僵尸进程&#xff0c;造成内存泄漏等问题&#xff0c;如下&#xff1a; #include <stdio.h> #include <stdlib.h> #include <stdbool.h> #include &l…

【包邮送书】ARM汇编与逆向工程

欢迎关注博主 Mindtechnist 或加入【智能科技社区】一起学习和分享Linux、C、C、Python、Matlab&#xff0c;机器人运动控制、多机器人协作&#xff0c;智能优化算法&#xff0c;滤波估计、多传感器信息融合&#xff0c;机器学习&#xff0c;人工智能等相关领域的知识和技术。关…

被问了N遍的效率工具!批量自动添加好友

你还在手动输入客户号码或是微信号&#xff0c;再逐一进行搜索和添加吗&#xff1f; 现在有一个工具可以帮助你完成这项重复枯燥的工作任务&#xff0c;而且&#xff0c;这个工具不仅能够帮助你批量添加微信好友&#xff0c;更有很多自动化的功能&#xff0c;让你的办公效率得…

14028.malloc堆内存泄漏问题

文章目录 1 模拟堆内存不断增长的场景使用vmstat查看内存变化情况使用valgrind 的memcheck输出日志1 模拟堆内存不断增长的场景 #include <stdio.h> #include <unistd.h> #include <stdint.h> #

在Java中如何判断素数

目录 一、试除法 二、埃氏筛选法 三、欧拉筛选法 一、试除法 素数的定义&#xff1a;只能被1和自己的整除的正整数。注&#xff1a;1不是素数&#xff0c;最小素数是2判断一个数n是不是素数&#xff0c;当你<10^14&#xff0c;用试除法&#xff1b;当n>10^14&#xff…

【华为OD机试】去重求和【C卷|100分】

【华为OD机试】-真题 !!点这里!! 【华为OD机试】真题考点分类 !!点这里 !! 题目描述 给定一个数组,编写一个函数, 计算他的最大N个数和最小N个数的和, 需要对数组进行去重。 输入描述 第一行输入M,M表示数组大小 第二行输入M个数,表示数组内容 第三行输入N表示需要计算…

Comparable接口详解

Comparable接口是Java中的一个接口&#xff0c;用于定义对象的自然排序方式。实现Comparable接口的类必须定义compareTo方法&#xff0c;该方法用于比较当前对象与另一个对象的大小。这种比较机制允许对象数组或集合通过如Arrays.sort()或Collections.sort()等工具类进行自然排…

第二证券|AIGC行业新突破不断 文化传媒板块活跃

本周以来&#xff0c;以短剧、游戏为代表的文明传媒板块实现三连涨。3月13日&#xff0c;游戏股逆势大涨&#xff0c;游戏出海、网络游戏、短剧游戏方向领涨。到收盘&#xff0c;因赛集团以20%幅度涨停&#xff0c;掌趣科技涨超10%&#xff0c;凯撒文明、中广天择、时代出书、大…

【Datawhale组队学习:Sora原理与技术实战】训练一个 sora 模型的准备工作,video caption 和算力评估

训练 Sora 模型 在 Sora 的技术报告中&#xff0c;Sora 使用视频压缩网络将各种大小的视频压缩为潜在空间中的时空 patches sequence&#xff0c;然后使用 Diffusion Transformer 进行去噪&#xff0c;最后解码生成视频。 Open-Sora 在下图中总结了 Sora 可能使用的训练流程。…

Django之Cookie

Django之Cookie 目录 Django之Cookie介绍Django操作Cookie设置Cookie浏览器查看Cookie 获取Cookie设置超时Cookie注销Cookie 模拟登录验证登录验证装饰器登录验证装饰器-升级版 介绍 当我们上网使用社交媒体或者购物时&#xff0c;浏览器需要通过一种方式来记住我们。想象一下…