花生(The Peanuts)

时间限制: 1 Sec  内存限制: 128 MB
提交: 3  解决: 2
[提交][状态][讨论版]

题目描述

鲁宾逊先生和他的宠物猴,多多,非常喜欢花生。有一天,他们两个正沿着乡间小路散步,多多突然发现路边的告示牌上贴着一张小小的纸条:“欢迎免费品尝我种的花生!”。你可以想象当时鲁宾逊先生和多多是多么的高兴!

在告示牌背后,路边真的有一块花生田,花生植株整齐地排列成矩形网格(如图(a)所示)。在每个交叉点,有零颗或多颗花生。例如在图(b)中,只有4个交叉点上有多颗花生,分别为15,13,9和7颗,其他交叉行都只有零颗花生。多多只能从一个交叉点跳到它的四个相邻交叉点上,所花费的时间为1个单位时间。以下过程所花费的时间也是1个单位时间:从路边走到花生田,从花生田走到路边,采摘一个交叉点上的花生。

根据鲁宾逊先生的要求,多多首先走到花生数最多的植株。采摘这颗植株的花生后,然后走到下一个花生数最多的植株处,如此等等。但鲁宾逊先生并不耐烦,来等多多采摘所有的花生。而是要求多多在给定的时间内返回到路边。例如,在图9.8(b)中,多多在21个单位时间内可以采摘到37颗花生,多多走到路线如图所示。

你的任务是,给定花生分布情况,以及给定时间限制,求多多最多能摘到的花生数。你可以假定每个交叉点的花生数不一样,当然除了花生数为0外。花生数为0的交叉点数目可以有多个。

输入

输入文件的第1行为一个整数T,代表测试数据的数目,1≤T≤20。对每个测试数据,第1行包含3个整数:M、N和K,1≤M,N≤50,0≤K≤20000。接下来有M行,每行有N个整数。每个整数都不超过3000。花生田的大小为M×N,第i行的第j个整数X表示在(i,j)位置上有X颗花生。K的含义是多多必须在K个单位时间内返回到路边。

输出

对每个测试数据,输出多多在给定时间内能择到花生的最大数。

样例输入

2
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
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

样例输出

37
28

提示

 #include <iostream>
#include <cstring>
#include <string>
#include <algorithm>
#include <cmath>
using namespace std;
struct node
{
int x,y,v;//x存行,y存列
}b[];
bool cmp(node aa,node bb)
{
return aa.v>bb.v;
}
int main()
{
int t;
cin>>t;
while(t--)
{
int n,m,k;
cin>>n>>m>>k;
int l=;
for(int i=;i<=n;i++)
{
for(int j=;j<=m;j++)
{
int aa;
cin>>aa;
b[l].x=i;
b[l].y=j;
b[l++].v=aa;
}
}
sort(b+,b++n*m,cmp);//从小到大排序
int temp=;
int sum=;
for(int i=;i<=n*m;i++)
{
if(b[i].v==)
{
break;//没有可以走的了
}
if(i==)
{
sum=+b[i].x;
temp=b[i].v;//存得到的花生
}
else
{
int cz=abs(b[i].x-b[i-].x)+abs(b[i].y-b[i-].y)+;//走到下一个点的时间
if(sum+cz>k) break;
if(sum+cz+b[i].x>k) break;//从这个点到那个点再到公路的时间有没有超时
temp+=b[i].v;
sum+=cz;
}
}
cout<<temp<<endl;
}
return ;
}

zufeoj 花生(The Peanuts)的更多相关文章

  1. noip普及组2004 花生采摘

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

  2. P1086 花生采摘

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

  3. 【luoguP1086】【2004NOIP-Ua】花生采摘

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

  4. 洛谷——P1086 花生采摘

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

  5. 洛谷—— P1086 花生采摘

    https://www.luogu.org/problem/show?pid=1086#sub 题目描述 鲁宾逊先生有一只宠物猴,名叫多多.这天,他们两个正沿着乡间小路散步,突然发现路边的告示牌上贴着 ...

  6. OpenJudge2728:摘花生 解题报告

    2728:摘花生 总时间限制:  1000ms 内存限制: 65536kB 描述 Hello Kitty 想摘点花生送给她喜欢的米老鼠.她来到一片有网格状道路的矩形花生地(如下图),从西北角进去,东南 ...

  7. OpenJudge / Poj 1928 The Peanuts C++

    链接地址:http://bailian.openjudge.cn/practice/1928 题目: 总时间限制: 1000ms 内存限制: 65536kB 描述 Mr. Robinson and h ...

  8. Vijos 1120 花生采摘

    和“过河”一样,在很久以前我也曾经尝试过做这道题,可无奈当时没有看清题目.题目上说要先找最大的,然后次之.当时纠结了好久,可惜没做出来.但是现在就很好做了,只需要用结构体把每一个花生植株记录下来,so ...

  9. 花生日记_花生日记APP下载_花生日记邀请码

    花生日记 国内领先的社交电商导购分享平台. 独创社交电商3+模式,社交+电商+社群,上线1个月注册用户超百万.合作商家涵括各个类目以及平台.为数万宝妈提供月收入3000以上兼职收入. 微信扫描下方二维 ...

随机推荐

  1. XML 存储文档

    package com.kpsh.myself; import java.io.File;import java.io.FileWriter; import org.dom4j.Document;im ...

  2. SVM-支持向量机原理详解与实践

    前言 去年由于工作项目的需要实际运用到了SVM和ANN算法,也就是支持向量机和人工神经网络算法,主要是实现项目中的实时采集图片(工业高速摄像头采集)的图像识别的这一部分功能,虽然几经波折,但是还好最终 ...

  3. ng2 学习笔记(二)表单及表单验证

    在上一篇文章中提到了表单,只说了表单的数据绑定,这一篇文章主要讲一下表单验证,为什么把表单单独拿出来学习,主要是因为,表单是商业应用的支柱,我们用它来执行登录.求助.下单.预订机票.安排会议,以及不计 ...

  4. Maven的生命周期阶段

    一.Maven的生命周期 Maven的生命周期就是对所有的构建过程进行抽象和统一.包含了项目的清理.初始化.编译.测试.打包.集成测试.验证.部署和站点生成等几乎所有的构建步骤. Maven的生命周期 ...

  5. MFC--串口编程---WIN API的方式将串扣操作封装在线程类中

    串口采集数据 本文档介绍的是如何获取串口原始数据并将原始数据解析成可处理或可展示的数据. 一.串口采集有很多方式: 1).MFC有一个专门的控件,直接编程采集,一个控件只能采集一个串口,而且串口名字比 ...

  6. flask学习(一):环境的安装

    一. 安装python2.7 从python官网下载python2.7的版本 双击python2.7,然后选择安装路径,一直下一步就可以了 设置环境变量,把python和pip的安装路径添加到PATH ...

  7. 牛客比赛-Wannafly9-A/B/C

    A-链接:https://www.nowcoder.com/acm/contest/71/A来源:牛客网 给定n个正整数,请找出其中有多少个数x满足:在这n个数中存在数y=kx,其中k为大于1的整数 ...

  8. sed、awk学习篇

    [yongsan@yz6245 ~]$ awk 'BEGIN {FS=":"}{shells[$NF]++;}END{for(i in shells)print i ": ...

  9. 【spark】示例:二次排序

    我们有这样一个文件          首先我们的思路是把输入文件数据转化成键值对的形式进行比较不就好了嘛! 但是你要明白这一点,我们平时所使用的键值对是不具有比较意义的,也就说他们没法拿来直接比较. ...

  10. android手机尺寸相关p107-p110

    1.ldpi-----240x320-----密度120 mdpi-----320x480-----密度160 hdpi-----480x800-----密度240 xhdpi-----720x128 ...