【题解】普及三秋季-线性技巧综合训练例题-上午 练习T1


正解(100pts)

考虑贪心思想,先记录每个竹子需要裁剪次数(用数组 p 记录),随后从最大次数枚举。

核心Code:

//这里p[i]指的是操作次数
for(int i=maxn;i>0;i--){ //枚举
		for(int j=1;j<=n;j++){
			if(p[j]==i){ //当操作次数相等
				if(a[j]!=a[j+1]){ //判断连续性
					ans++;
				}
                p[j]--; //将操作次数减掉
				a[j]=sqrt(a[j]/2+1); //操作竹子高度
			}
		}
	}
2 个赞

此帖子已被社区举报,现已被临时隐藏。

我跟你的思路挺像的,但我成功 \color{purple}{MLE0}
原因如下:
image符合用户名