模拟测试20190905

这次主要反思一下考试心态吧,毕竟这次挺炸的

上来看了10分钟T1想到正解,20分钟码完,10分钟拍上,一看时间7:00,然后我就飘了开始看T2

过了十来分钟想到了一个式子,刚开心着发现那个式子没法约分

然后肛到了8:40,无果,弃了T2去看T3

刚开始以为可做,然鹅实现起来细节巨多,码到9:20无果,扔了个puts("-1")上去

剩下的时间按照自己的式子疯狂码T2,过不了样例,GG

最后总分$100+10+10=120pts$,rank3我也不想说什么,毕竟比大脸少了120pts

回顾这场考试,如果T2能一直朝着2最初的想法钻还是有可能A掉的

T3如果实现的时候不紧张应该可以多拿一点分的

如果脸和skyh一样大应该是可以拿rank1的

继续努力

T1:简单的区间

考完我不太明白为什么要启发式合并,这不是普通分治吗。。。。。。

$solve(l,r)$表示处理$[l,r]$这个区间,考虑怎么处理跨区间的情况

考虑把情况分成两种:最值在左边和最值在右边,这里考虑最值在右边(左边同理)

从中间向右边扫右儿子,由于最大值满足单调性,让一个单调指针去扫左儿子,同时保证左边的最大值不大于右边目前的最大值

用桶统计答案就好了

复杂度$O(nlogn)$

T2:简单的玄学

我们根据题意很容易得出这样一个式子

      $ frac{2^{nm}-prodlimits_{i={2^{n}-m+1}}^{2^{n}}i}{2^{nm}} $

看起来好像没法做的样子,我们把式子拆开看看

    $ 1-frac{prodlimits_{i={2^{n}-m+1}}^{2^{n}}i}{2^{nm}} $

这个柿子看起来需要连乘$m$次,但是我们发现每$1e6+3$个数里一定有一个$1e6+3$的倍数,那么分子就是$0$

然后我们考虑约分的问题,显然$(?)$对于任意$1leq i<{2^{n}}$,$i$与$2^{n}-i$所含2的个数相同

然后问题转化为求${(m-1)}!$中含2的个数,这个有很经典的$O(log)$求法

T3:简单的填数

显然在合法的情况下我们要使得每个数出现尽量少

设二元组$up(i)$和$down(i)$,$up(i)$表示第i位的最大可能值以及前面最多有多少个和他相同,$down(i)$同理

简单转移就好了

最后求序列只要让序列在满足$up$和$down$的情况下尽量大/小就好了

复杂度$O(n)$

原文地址:https://www.cnblogs.com/mikufun-hzoi-cpp/p/11474663.html