花生(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

提示

 1 #include <iostream>
 2 #include <cstring>
 3 #include <string>
 4 #include <algorithm>
 5 #include <cmath>
 6 using namespace std;
 7 struct node
 8 {
 9     int x,y,v;//x存行,y存列
10 }b[2505];
11 bool cmp(node aa,node bb)
12 {
13     return aa.v>bb.v;
14 }
15 int main()
16 {
17     int t;
18     cin>>t;
19     while(t--)
20     {
21         int n,m,k;
22         cin>>n>>m>>k;
23         int l=1;
24         for(int i=1;i<=n;i++)
25         {
26             for(int j=1;j<=m;j++)
27             {
28                 int aa;
29                 cin>>aa;
30                 b[l].x=i;
31                 b[l].y=j;
32                 b[l++].v=aa;
33             }
34         }
35         sort(b+1,b+1+n*m,cmp);//从小到大排序
36         int temp=0;
37         int sum=0;
38         for(int i=1;i<=n*m;i++)
39         {
40             if(b[i].v==0)
41             {
42                 break;//没有可以走的了
43             }
44             if(i==1)
45             {
46                 sum=1+b[i].x;
47                 temp=b[i].v;//存得到的花生
48             }
49             else
50             {
51                 int cz=abs(b[i].x-b[i-1].x)+abs(b[i].y-b[i-1].y)+1;//走到下一个点的时间
52                 if(sum+cz>k) break;
53                 if(sum+cz+b[i].x>k) break;//从这个点到那个点再到公路的时间有没有超时
54                 temp+=b[i].v;
55                 sum+=cz;
56             }
57         }
58         cout<<temp<<endl;
59     }
60     return 0;
61 }

zufeoj 花生(The Peanuts)相关推荐

  1. GBC代理“花生漫画PEANUTS”,遭遇侵权账户冻结应该怎么处理?

    近日,有不少卖家反应自己跨境电商平台账户被冻结,资金无法提现.纠其原因为某一款产品在美国侵权被"PEANUTS WORLDWIDE LLC "起诉,导致账户冻结. ​ 添加图片注释 ...

  2. 中餐和西餐菜名大全(zt)

    凉菜 cold dish 冷盘 cold dish 拼盘 assorted cold foods; hors d'oeuvres; assorted appetizers 凉拼盘 assorted c ...

  3. CSP-J复赛复习题目(NOIP普及组2000-2011)

    CSP-J复赛复习题目(NOIP普及组2000-2011) NOIP普及组复赛(某个不存在的比赛)2000-2011年的题面和样例 可以用来复习CSP-J 建议去OJ上查看并提交 祝大家CSP RP+ ...

  4. 《MLB棒球创造营》:走近棒球运动·旧金山巨人队

    旧金山巨人(英语:San Francisco Giants)是一支位于旧金山的职业棒球队,隶属大联盟国家联盟西区.球队主场为甲骨文球场. 球队最先创建于纽约,1883年以纽约高谭 (New York ...

  5. 花生采摘(peanuts)

    终于有时间更新了,感觉接着上次的题解来一发吧! 题目:鲁宾逊先生有一只宠物猴,名叫多多.这天,他们两个正沿着乡间小路散步,突然发现路边的告示牌上贴着一张小小的纸条:"欢迎免费品尝我种的花生! ...

  6. 花生问题——百练OJ:2950:摘花生与1928:The Peanuts

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

  7. 洛谷 P1086 花生采摘

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

  8. 文献解读|miRNA与多组学联合分析阐明花生花青素合成新机制

    TITLE:Multi-Omics and miRNA Interaction Joint Analysis Highlight New Insights Into Anthocyanin Biosy ...

  9. P1086 花生采摘

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

最新文章

  1. 首款鸿蒙p系om统终端,华为全力赋能:首款鸿蒙系统终端荣耀智慧屏,距离上市销售倒计时...
  2. 14门教程带你全面入门Linux
  3. 知识图谱入门知识(二)事件抽取(EE)详细介绍
  4. vue 图形化设计工具_Vue: Vue-CLI3.0 创建项目
  5. python apscheduler 动态_基于Flask-APScheduler实现添加动态定时任务
  6. [Teamcenter 2007 开发系列] 整合Extjs 展现页面组件
  7. sqlserver事务怎么开启 怎么提交 怎么回滚
  8. leetcode 13 13. 罗马数字转整数 (python)
  9. Percona Toolkit工具箱的安装与使用--完成复杂的mysql操作。
  10. 【vue】vue中element表格导出为excel表格
  11. AI赋能,使用客服机器人改善客户服务的几种方法
  12. iso硬盘安装 凤凰os_phoenix os安装全教程 凤凰系统进不去安装注意事项
  13. 源码:Qt开发的离线软件注册机 适用于工业设备。
  14. 互阻放大器的稳定工作及其评估
  15. java成员变量的调用_java中对象调用成员变量与成员的方法介绍
  16. pyPDF2或pyPDF4做pdf页面提取出错
  17. 学前端是去培训班还是自学好?
  18. IText_根据模板导出PDF(文字、表格、图片)
  19. python找出素数_[Python 1] 如何使用Python找质数?
  20. Python做数据处理(二):贷款风险预测

热门文章

  1. 【科普】CPU是什么?i5-8300H是什么?
  2. python列表生成器
  3. 北京购买火车票实用指南(转)
  4. 阿里入职的第一年,这是你想要的职场生活吗?
  5. 十一月 android各版本,精选十一月精彩Android游戏大合集
  6. c语言显示应输入文件名,在C语言中转义字符有特殊的含义,它以反斜杠\\开头,后面接特定的字符。()...
  7. H3C系列产品入门以及产品名英文所代表的意思
  8. hexo之Volantis添加暗黑模式
  9. Snapshot截图软件(一个很小几百k又很好用的的截图工具)大老李博客
  10. vue日程/日历管理插件FullCalendar (模仿wps日程)