2021.10.15模拟赛总结

时间安排

1 : 50 − 2 : 40 1:50-2:40 1:502:40 先把所有题的题面都读了一遍,T2,T4最耗时间了,我一直在找T4的u和v合并以后的新的瓶子是在u上还是在v上,我看了看大样例,每一个瓶子的最后出现的位置都是v,所以我以为是u和v合并在u(即v倒到u里面),直到我看见有一组数据是第i个合并操作是i和i+1,我直接懵了,因为如果是v倒到u里面,那么这n-1个操作就不可能将这n个瓶子合并成一个,如果是u倒到v里面,大样例又无法解释,就很离谱。
2 : 40 − 3 : 20 2:40-3:20 2:403:20 把T1写了,其实不难,先对01串做一个前缀和,考虑对于每一个 i ( 2 i ) i(2^i) i(2i),其所能影响到的是一段区间,所以对于每一个 i ( i < n ) i(i < n) i(i<n),都可以求出 s [ i ] ( i ∈ 2 k ) s[i](i \in 2^k) s[i](i2k),如果和当前的不同,就代表错误的位置的下标一定在二进制的第 i i i 位为1,再用一个sta存一下,最后翻转 s [ s t a ] s[sta] s[sta] 的值后输出即可。
3 : 20 − 4 : 00 3:20-4:00 3:204:00 在码T3,首先T3可以简化为构造一个序列 a [ i ] a[i] a[i],使得对于每一个 a [ i ] a[i] a[i] 来说, 1 1 1 i − 1 i-1 i1 中比 a [ i ] a[i] a[i] 小的数和 i + 1 i+1 i+1 n n n 中比 a [ i ] a[i] a[i] 小的数的个数之差小于等于1,所以我就先写了一个dfs,离谱的是我打出来的序列是 1 , 2 , 2 , 4 , 4 , 8 , 8 , 16 , 16 , 32 1,2,2,4,4,8,8,16,16,32 1,2,2,4,4,8,8,16,16,32,我一看这规律这么明显的吗,不就是 2 ⌊ n / 2 ⌋ 2^{\lfloor n/2 \rfloor} 2n/2 就写了一个快速幂,然后就在第二个样例挂了,当时我以为是规律没找对,就去看T4了。
4 : 00 − 4 : 40 4:00-4:40 4:004:40 我硬着头皮写了一个(我以为的)10分代码,但是我一直不明白u和v是怎么合并的我觉得大样例是对的,所以就写了一个把v倒到u里的代码。
4 : 40 − 5 : 30 4:40-5:30 4:405:30 自闭的模拟题,看到题我头都是大的,想的是对于售卖池维护两个set,一个维护值,一个维护前缀和,对于每一次操作,用lower_bound二分查找,然后删掉之前的值,对于1,2操作依次插入删除即可,但是我的lower_bound的等于和大于的情况没处理好,然后样例还RE,最后也没调出来。

总结

模拟题是一个大问题,细节太多,调的太自闭(这也是我为什么最后写T2),然后就是致我那写错的dfs和30分,还有万恶的T4题面的出题人,恶心了我半个多小时,一个字一个字地扣题面。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值