模拟68
考试过程:
看到T1,看出来只和最小的长和宽有关,枚举选了几个,就没了。
T2做的非常失败,看到题以为是求最大值以为是sb题,打到一半发现是求最小值。
然后想了想可以树上主席树,就开始码,码+调大约2h,自测极限数据2.1s,感觉要完戏,看到没多长时间了,先去打了T3暴力。
然后回来做T2,把求lca从倍增改成了树剖,快了1s,我以为我稳A了。
预计$100+100+30$,实际$100+44+30$,$T2$主席树的实现挂了,直接卡成暴力分,多了一个$log$
赛后随便改了改就A了。
T1,
注意到只与最小值有关,于是直接枚举删掉几个,就没了。
T2,
主席树上树,注意查前趋后继的时候,不能随便求。
以前趋为例,必须在查右子树没有结果的时候,才能去查左子树,这样的话最劣情况查询两条链,$O(logn)$
如果不这么做,会多出一个log
T3,
首先注意到两个数 xor x之后的大小关系只与最高的不同位有关,于是每一位的贡献是独立的。
枚举每一个数,就可以做到$O(k*2^k)$了。
考虑优化,spj提醒了我们二分答案。
于是$meet\ in\ middle$,两部分贡献分开考虑,先二分$f(x)$,再二分$x$,就没了。
最近挂分挂的有点多。。。。前天拿20分盖掉了自己AC,昨天少打一个等号挂掉$50pts$。
稳