模拟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$。

posted @ 2019-10-11 15:57  tdcp  阅读(125)  评论(1编辑  收藏  举报