时间限制1.00s 内存限制128.00MB 难易度:普及−
【题目描述】
爱丽丝要完成一项修剪灌木的工作。
有 N 棵灌木整齐的从左到右排成一排。爱丽丝在每天傍晩会修剪一棵灌木,让灌木的高度变为 0 厘米。爱丽丝修剪灌木的顺序是从最左侧的灌木开始,每天向右修剪一棵灌木。当修剪了最右侧的灌木后,她会调转方向,下一天开始向左修剪灌木。直到修剪了最左的灌木后再次调转方向。然后如此循环往复。
灌木每天从早上到傍晩会长高 1 厘米, 而其余时间不会长高。在第一天的早晨, 所有灌木的高度都是 0 厘米。爱丽丝想知道每棵灌木最高长到多高。
【输入格式】
一个正整数 N ,含义如题面所述。
【输出格式】
输出 N 行, 每行一个整数, 第行表示从左到右第 i 棵树最高能长到多高。
【输入输出样例】
输入 #1
3
输出 #1
4 2 4
【说明/提示】
对于 30% 的数据, N≤10.
对于 100% 的数据, 1<N≤10000.
蓝桥杯 2022 省赛 B 组 D 题。
【算法分析】
这道题 so easy .
对于所有的树,它的最高高度其实和正常没什么区别,如果爱丽丝刚刚修剪完第 i 棵树,那么她再次碰见这棵树要走的路都是相同的。所以对于第 i 棵树来说,它的高度其实就是爱丽丝离开这棵树的天数。
【参考代码】
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n;
cin>>n;
for(int i=1;i<=n;i++)
cout<<max(n-i,i-1)*2<<endl;
return 0;
}