模拟测试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}-\prod\limits_{i={2^{n}-m+1}}^{2^{n}}i}{2^{nm}}\ $
看起来好像没法做的样子,我们把式子拆开看看
$ 1-\frac{\prod\limits_{i={2^{n}-m+1}}^{2^{n}}i}{2^{nm}}\ $
这个柿子看起来需要连乘$m$次,但是我们发现每$1e6+3$个数里一定有一个$1e6+3$的倍数,那么分子就是$0$
然后我们考虑约分的问题,显然$(?)$对于任意$1\leq 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)$
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步