欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 教育 > 高考 > P8781 [蓝桥杯 2022 省 B] 修剪灌木

P8781 [蓝桥杯 2022 省 B] 修剪灌木

2025/11/12 7:35:25 来源:https://blog.csdn.net/2501_91282886/article/details/146996410  浏览:    关键词:P8781 [蓝桥杯 2022 省 B] 修剪灌木

题目描述

爱丽丝要完成一项修剪灌木的工作。

有 N 棵灌木整齐的从左到右排成一排。爱丽丝在每天傍晩会修剪一棵灌木,让灌木的高度变为 0 厘米。爱丽丝修剪灌木的顺序是从最左侧的灌木开始,每天向右修剪一棵灌木。当修剪了最右侧的灌木后,她会调转方向,下一天开始向左修剪灌木。直到修剪了最左的灌木后再次调转方向。然后如此循环往复。

灌木每天从早上到傍晩会长高 1 厘米, 而其余时间不会长高。在第一天的早晨, 所有灌木的高度都是 0 厘米。爱丽丝想知道每棵灌木最高长到多高。

输入格式

一个正整数 N ,含义如题面所述。

输出格式

输出 N 行, 每行一个整数, 第行表示从左到右第 i 棵树最高能长到多高。

输入输出样例

输入 #1复制

3

输出 #1复制

4
2
4

说明/提示

对于 30% 的数据, N≤10.

对于 100% 的数据, 1<N≤10000.

蓝桥杯 2022 省赛 B 组 D 题。

代码解析 :

对于所有的树,它的最高高度其实和正常没什么区别。
为什么呢?如果爱丽丝刚刚修剪完第 i 棵树,那么她再次碰见这棵树要走的路都是相同的。所以,对于第 i 棵树来说,它的高度其实就是爱丽丝离开这棵树的天数,即 2×(n−i)。这个算式里,n−i 表示离右端点的距离,乘 2 是因为这段路过去了还要再走一遍回来。
测试样例,发现没有对。
因为我们只考虑了右端点,没有考虑左端点。对于第 i 棵树来说,它离左端点的距离为 i−1。因为要最高的长度,所以正解的算式为:max(n−i,i−1)×2。

#include<bits/stdc++.h>
using namespace std;
int n;
int main()
{cin>>n;for(int i=1;i<=n;i++){cout<<max((i-1)*2,(n-i)*2)<<endl;}return 0;} 

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词