C++
\color{gold}{— > 蓝桥杯辅导课题解}
\color{red}{— >另一种阅读体验}
思路:
思维题
考虑当前修剪至第i个灌木,当前高度为0
1、如果当前向右修剪,那么经过i+1,i+2,···n-1,n后掉转方向,再经过n-1,n-2,···i+1,
i回到第i个灌木,共经过2*(n-i)次
2、如果当前向左修剪,那么经过i-1,i-2,···2,1后调转方向,再经过2,3···i-1,i回到
第i个灌木,共经过2*(i-1)次
那么最后的答案就是 max(2(i-1),2(n-i))
图解:
code:
#include<bits/stdc++.h>
using namespace std;
int main() {
int n;
cin >> n;
for (int i = 1; i <= n; i ++)
cout << max (2 * (n - i), 2 * (i - 1)) << endl;
return 0;
}
。
。。。
送你一个赞
谢谢大佬的鼓励,嘿嘿(ง •_•)ง
nb