H(ly)
切入点很妙,解法也很妙。
题的原型是hdu 5649,对一段序列a[n]进行多次区间(升/降)排序,求a[k]。
解法:
二分a[k]
对于当前的a[k],原序列中比a[k]小的置为0,不比a[k]小的置为1,然后进行m次区间操作。
这时,对一个01串进行排序就容易多了,线段树区间查询和区间修改。
最后看第k位上的是0还是1,一直二分出结果。
回到本题,hdu 5649是普通的升降排序,本题是花式排序,就是小的放中间,大的放两边,这样也可以用上面的思路来解。
湖南多校第八场
最新推荐文章于 2018-12-27 15:28:00 发布