首页 > 分享 > P1086 [NOIP2004 普及组] 花生采摘(模拟)

P1086 [NOIP2004 普及组] 花生采摘(模拟)

【题目描述】
路边有一块花生田,花生植株整齐地排列成矩形网格(如下图)。有经验的多多一眼就能看出,每棵花生植株下的花生有多少。为了训练多多的算术,鲁宾逊先生说:“你先找出花生最多的植株,去采摘它的花生;然后再找出剩下的植株里花生最多的,去采摘它的花生;依此类推,不过你一定要在我限定的时间内回到路边。”

在这里插入图片描述

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

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

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

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

【输出格式】
一个整数,即在限定时间内,多多最多可以采到花生的个数。

【输入样例】

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 1234567

【输出样例】

37 1

【代码】

#include <iostream> #include <algorithm> using namespace std; const int N = 30; int n, m, k, cnt;//cnt表示有花生的点的数量 struct Points//记录有花生的点的坐标以及花生数量 {int x, y, w;bool operator< (const Points &t) const{return w > t.w;} }point[N * N]; int main() {cin >> n >> m >> k;for (int i = 1; i <= n; i++)for (int j = 1; j <= m; j++){int a;cin >> a;if (a > 0) point[cnt].x = i, point[cnt].y = j, point[cnt++].w = a;}sort(point, point + cnt);//按花生数量从小到大排序int res = 0, now = 0;//res表示采摘的花生总数,now表示当前已经花费的时间int px = 0, py = 0;//当前坐标for (int i = 0; i < cnt; i++){if (!i) py = point[i].y;//如果还没下田地,则将初始纵坐标更新为最近的//已花费时间 + 当前点到下个点所花时间 + 采花生时间 + 下个点回路边的时间 > 要求时间,则不能继续采摘了if (now + abs(px - point[i].x) + abs(py - point[i].y) + 1 + point[i].x > k) break;else{now += abs(px - point[i].x) + abs(py - point[i].y) + 1;//到下一个点采花生res += point[i].w;px = point[i].x, py = point[i].y;//更新当前坐标}}cout << res << endl;return 0; } 1234567891011121314151617181920212223242526272829303132333435363738394041424344

相关知识

【NOIP2004普及组】花生采摘
SWUSTOJ #348 花生采摘
swust oj 384花生采摘
花生问题——百练OJ:2950:摘花生与1928:The Peanuts
试练场
PAT练习 采花生
内蒙古24人采摘沙葱韭菜花被查处:非法采摘野生植物
媒体采风走进城阳 体验田园采摘、亲子研学等活动
公园里的禁止采摘提示牌高清图片下载
模拟人生家有宠物电脑版

网址: P1086 [NOIP2004 普及组] 花生采摘(模拟) https://m.mcbbbk.com/newsview554235.html

所属分类:萌宠日常
上一篇: 中华宠物猴幻灯片.ppt
下一篇: 题目