线段树优化dp的常见套路题,就是先按某个参数排序,然后按这个下标建立线段树,再去优化dp 本题由于要维护两个数据:最小值和对应的方案数,所以用线段树区间合并 /* dp[i]表示第i个套娃作为最内层的最小浪费空间 dp[i]=min(dp[j])+out[i]-in[i]; 那么按照out排序后按下标建立线段树,节点维护的是二元组(区间最小值,这个最小值对应的方案数) 求dp[i]时二分找到out[j]<=in[i]的区间[1,pos],然后线段树里查询再更新 处理方案数,线段树向上合并时,只保…