首页 > 分享 > [NOIP2004]花生采摘

[NOIP2004]花生采摘

张镓麒 已于 2024-04-10 17:58:45 修改

于 2024-02-11 11:29:51 首次发布

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

NOIP 2004 普及组 花生采摘 题解

原题链接

题目分析

看到题目中的采摘情景,不难想到这道题我们应该使用搜索来进行处理。题目中要求每次都采摘剩下花生中果实数最大的一棵植株,所以考虑使用DFS进行处理。

易错点分析

采摘策略问题

你先找出花生最多的植株,去采摘它的花生;然后再找出剩下的植株里花生最多的,去采摘它的花生;依此类推,不过你一定要在我限定的时间内回到路边。

这一段表明了我们的采摘策略:每次都采摘剩下的最多的那一堆,如果没有仔细看这段话,就可能会把这道题理解成另一道题,也就是如何采摘使得采摘数最多。

跳跃方式问题
题目中并没有说在路上走需要花时间,所以第一步我们一定要直接取直线距离进入田里,不然时间会大幅增加

核心代码

void DFS(int sum, int x, int y) {//sum表示还有多少时间的剩余,x和y表示当前位置的坐标int maxx, maxy, maxnum = -999;for (int i = 1; i <= m; i++) {for (int j = 1; j <= n; j++) {if (a[i][j] > maxnum) maxx = i, maxy = j, maxnum = a[i][j];}}//寻找当前的最小值if (y == 0) y = maxy;//从路边走直线到第一站if (sum < abs(x - maxx) + abs(y - maxy) + maxx + 1 || a[maxx][maxy] == 0) {return;} else {ans += a[maxx][maxy], a[maxx][maxy] = 0; //已经摘完了DFS(sum - abs(x - maxx) - abs(y - maxy) - 1, maxx, maxy);} }

123456789101112131415161718

完整代码

#include<bits/stdc++.h> const int MAXN = 25; using namespace std; int m, n, k; int a[MAXN][MAXN]; int ans; void DFS(int sum, int x, int y) {//sum表示还有多少时间的剩余,x和y表示当前位置的坐标int maxx, maxy, maxnum = -999;for (int i = 1; i <= m; i++) {for (int j = 1; j <= n; j++) {if (a[i][j] > maxnum) maxx = i, maxy = j, maxnum = a[i][j];}}//寻找当前的最小值if (y == 0) y = maxy;//从路边走直线到第一站if (sum < abs(x - maxx) + abs(y - maxy) + maxx + 1 || a[maxx][maxy] == 0) {return;} else {ans += a[maxx][maxy], a[maxx][maxy] = 0; //已经摘完了DFS(sum - abs(x - maxx) - abs(y - maxy) - 1, maxx, maxy);} } int main() { //freopen(".in", "r", stdin); //freopen(".out", "w", stdout);ios::sync_with_stdio(false);cin >> m >> n >> k;for (int i = 1; i <= m; i++) {for (int j = 1; j <= n; j++) {cin >> a[i][j];}}DFS(k, 0, 0);cout << ans;return 0; }

12345678910111213141516171819202122232425262728293031323334353637383940

运行结果

在这里插入图片描述

相关知识

花生几月份成熟采摘
花生的成熟时间及采摘技巧(一年四季)
东北花生收获季节(花生的生长过程及收获时间)
农业采摘
花生的成熟期及其养护方法(掌握花生成熟期)
花生的收获时机与季节(了解花生成熟时间)
春花生的收获时间和技巧(春花生的生长周期和收获要点)
花生的收获时间及成熟特征(掌握花生成熟特征)
花生成熟期及上市时间详解
红枣采摘季节详解(红枣成熟时间、采摘技巧、保存方法全解析)

网址: [NOIP2004]花生采摘 https://m.huajiangbk.com/newsview1083176.html

所属分类:花卉
上一篇: 寻找桂花采摘的最佳时机(探寻桂花
下一篇: 【模拟】花生采摘