题目链接
传送门
题意
有\(n\)棵竹子,然后有\(q\)次操作,每次操作给你\(l,r,x,y\),表示对\([l,r]\)区间的竹子砍\(y\)次,每次砍伐的长度和相等(自己定砍伐的高度\(len\),该区间大于\(len\)的树木都要砍到\(len\)),问你第\(x\)次砍的高度是多少(注意在经过\(y\)次砍伐后该区间的竹子的高度都会变成\(0\),询问之间互不影响)。
思路
由于在\(y\)次砍伐后树木高度都变为\(0\),且每次砍伐的总长度都相等,因此每次砍伐的长度和为该区间内竹子高度之和除以\(y\),前\(x\)砍伐的总高度为\(x*len\),然后二分第\(x\)次砍伐的高度,在主席树里面找大于砍伐高度的竹子有多少棵(记为\(sum1\)),这些竹子的高度和为\(sum2\),然后比较\(sum2-sum1*mid\)与\(x*len\)的关系调整上下界。
因为生日回家了几天,咕了两场多校,写几篇水题博客假装自己有在训练~
代码
#include
#include