洛谷P4587 神秘数 [FJOI2016] 主席树

正解:主席树

解题报告:

先放下传送门QAQ

首先可以先思考如果只有一组询问,怎么解决

可以这么想,最开始一个数也麻油的时候能表示的最大的数是0嘛

然后先排个序,按顺序每次新加入一个数x,设加入这个数之前能表示的最大的数是y

首先显然的是如果x>y+1,y+1一定不能被表示出来,就GG了

如果x<=y+1,那么能表示出来的最大的数就一定是x+y,就更新一下y+=x

从上面这个式子我们可以得到实际上每加入一个数,当可以继续下去的时候其实就是y=∑x

然后现在考虑是有多组询问的鸭怎么搞呢QAQ?

可以考虑这样子:对于当前的x,查询<=x的数的和

因为是问的区间内,所以用个主席树就好

然后就麻油啦啦啦!

over!等下放代码QAQ!

猜你喜欢

转载自www.cnblogs.com/lqsukida/p/10490872.html