传送门
首先考虑
那么如果不排序有没有办法做呢? 同样假设当前已经组合好了[1..x],设ans=x+1;显然初始时x=0,ans=1 我们在区间[l,r]内统计一下权值<=ans的点的权值和,设为y。如果ans<=y,说明除了组合出[1..x]中的数,一定存在一个数满足<=x+1,这个时候[1..y]都可以组合出来,将ans移动到y+1;如果ans>y,说明除了组合出[1..x]的数,其余所有的数均>x+1,这样当前的ans就是答案了 统计一个区间内<=k的数的和可以用可持久化线段树来是实现 这样看起来很暴力,但其实ans每一次扩大至少扩大一倍,所以总时间复杂度为
这题作为胡策的c题竟然是最良心的一道 然而当时并没有a掉。。。
感觉上午的状态非常奇怪 简单的难的都想不出来 想出来的暴力不想打 硬gang代码题没gang出来
是该好好想想了。。。
新闻热点
疑难解答