ZROI 2021/8/29 考试总结(New)

赛时时间安排

18:00~18:10 读题

通读完题面,感觉T1比较水,T3是原题,T2,T4没什么思路

18:10~18:20 码T1

直接模拟就可以,但是不小心删了而且回不去了,只能又打了一遍

18:20~19:10 调T3

因为这个题就是 P4135 作诗 几乎不变,就多个离散化,所以直接开码,调了一会就过了

19:10~19:40 想T4

因为T2确实没什么思路,于是就先来想T4,尽管是我最不擅长的期望,根据前一段学习期望的经验,想了三种可能的做法
1:根据期望的定义
2:根据期望的线性性质Dp
3:根据整数概率公式
先考虑第二种,不太会
然后再看第一种,好像可做
E ( n ) = w [ 1 ] × C [ 1 ] F [ n ] + w [ 2 ] × C [ 2 ] F [ n ] … … E(n)=w[1]\times \frac{C[1]}{F[n]}+w[2]\times \frac{C[2]}{F[n]}…… E(n)=w[1]×F[n]C[1]+w[2]×F[n]C[2]
其中w代表可能的叶子数量,C代表这个叶子数量的出现次数,F代表n个节点的二叉树的形态总数
分母是一样的,用分配率乘起来
E ( n ) = G ( n ) F ( n ) E(n)=\frac{G(n)}{F(n)} E(n)=F(n)G(n)
其中G的含义是所有可能的叶子数目之和,重复的也要算
然后又想起来老师讲过这个 F ( n ) = C a t ( n ) F(n)=Cat(n) F(n)=Cat(n)
也就是卡特兰数,但是这个G我不太会求
于是先把卡特兰数码完,开始用打表找规律
暴力写完之后,突然发现 G ( n ) = n × F ( n − 1 ) G(n)=n\times F(n-1) G(n)=n×F(n1)
但是我不会证,又怕我猜错结论了
但是写了就有分,于是就写了
不过这个 n ≤ 1 0 9 n\leq 10^9 n109,就不会了,估计是一个结论或者什么矩阵快速幂
70分已经满足了

8:00~9:00 想T2

这个n太大了,根本不能建线段树
然后我又推了半个小时,但是并未有什么收获,只发现如果构造另一个序列 B [ i ] = A [ i ] − i B[i]=A[i]-i B[i]=A[i]i那么这个序列是单调不降的

9:00~10:00

时间不多了,先写一个思路,就是把这个B用树状数组维护,然后二分查找第一个大于等于0的数,如果等于0就有,否则就没有,但是最坏情况建树还是会超时

比赛结果及感想

100+100+90+70
1:T2数据有点水,被我水过去了,看见AK的大佬写的分块,顿时觉得我傻了,分块不用建树,虽然有根号但是q很小
2:T3被卡常了,必须用常数小的莫队才行,但是我不死心,把块的大小调了调,居然就过了,真是欲哭无泪
3:T4也挺后悔的,把推出来的那个式子中的卡特兰数带进去再化简就能 O ( 1 ) O(1) O(1)求了

赛后总结

1:当时间复杂度比较卡时,尽量用常数更小的做法,不要执迷不悟
2:分块的块的大小不一定是根号n,要选取最优的大小
3:打表出奇迹
4:只要有想法就要写下来,说不定出题人没想到就水过去了

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值