例1 Harmony Forever hdu3303
题目要求你维护一个集合,每次插入一个数x,或询问集合中模一个给定数y的最小数。
操作数n<=4*10^4,x,y<=5*10^5。
首先对于一个模y的询问,我们可以在插入的时候就处理出这个答案,假设我们对于<=p的y处理出所有答案,那么插入是O(p)的,询问O(1)。
然后对于>p的y我们可以暴力查询大于等于ky的数最小是多少,暴力枚举这个k,用一些你喜爱的数据结构(set?)来维护这个集合,询问复杂度大约是O(x/p*logn)
不妨设logn≈15(算上常数),那么令x/p*logn=p,p≈2700。保险起见开了3000。
#include #include #include #include #include #include #include #include #include #include
本来还有一题,后来发现那题实在裸的不行就先不放上来了