此题初看根本没思路,上网搜了些题解。。
n个元素的组合,给定一个从0到2^n-1的整数m,则数m可以由如下形式表示
m=a(n-1) *2^(n-1) + a(n-2)*2^(n-2) + ... + a1*2^1 +a0*2^0
其中每个ai是0或1,二进制是a(n-1)a(n-2)...a1a0 可以延伸 这个是我从组合数学的书上摘抄过来的
k = a0 * (n - 1) ! + a1 * (n - 2) ! + ..... an * 0!
因而,因为要从1开始,最终结果第一位肯定是a0 + 1,然后第二位就是从1开始,没有被前面结果选出来的第a1 +1个数字。
那么我的线段树就是找这几个数字
貌似用stl也可以做。明天看看在理解下。
但是此题我也只是懵懵懂懂的状态,不知哪位大神可以稍微详细解释下