考虑当前层,是不是只分到左端点在 \([l,mid]\),右端点在 \([mid+1,r]\) 的区间?
那么是不是还差左右端点都在 \([l,mid]\) 的区间,左右端点都在 \([mid+1,r]\) 的区间?于是推锅分治下去即可,因为 \(solve(l,r)\) 的定义就是遍历了左右端点在 \([l,r]\) 的区间。