【游记】联合省选2020

说在前面

今年的省选是在本校考的,非常幸运。但俗话说得好,祸福相依。

d a y    0 \tt day\;0 day0

最后一个突击冲刺的夜晚,天上一颗星星也没有。机房里是几个年轻人,其中的一位正在复习 N T T \tt NTT NTT ,他还没有意识到将要到来的考试是个灭顶之灾。

我们的教练显然并不相信临阵磨枪的能力。今天晚上,我们一起看了爱尔兰酒后 y y \sout{\tt yy} yy 笑话,大家一起在喊 y e a h \tt yeah yeah ,没有想到明天就全是 O h \tt Oh Oh

今天晚上好像睡得蛮不错的,希望明天的 T 1 \tt T1 T1 能够搞定。因为我的水平只允许我完成 T 1 \tt T1 T1 呢。

d a y    1 \tt day\;1 day1

考虑到时间很充裕(后来证实并非如此),先玩了一会儿样例,发现有误……

然后发现把冰人跟火人搞反了。森林冰火人请原谅我

此时刚过去半个小时左右吧,已经有了个三分的思路。因为目的就是,令 min ⁡ ( a , b ) \min(a,b) min(a,b) 最大, a , b a,b a,b 分别是冰人、火人的能量和。长的是个尖尖角。

三分完之后需要一个求和,大概是平衡树可以完成的任务。复杂度 O ( n log ⁡ 2 n ) \mathcal O(n\log ^2n) O(nlog2n) ,啊这, n ≤ 1 0 6 n\le 10^6 n106 ,还专门不开 -O2 \text{-O2} -O2 是不是要卡常啊?

p . s . p.s. p.s. 教练指正:三分是不可以的。因为可能有相等的函数值,但是不分居最值两侧。举例,序列 1 , 1 , 3 , 2 , 1 1,1,3,2,1 1,1,3,2,1 的“取样点”为 1 , 1 1,1 1,1 时,究竟是最开头的两个 1 1 1 (最值在右侧),还是靠后的两个 1 1 1 (最值在中间)呢?

仔细想想,最高点一定在二者相等时取到,因为不等时可以调整使其更优。那么有个二分的思路,用 a − b a-b ab 作为函数值,找其零点。

这玩意儿可以直接在平衡树上二分了呗。加减冰人、加减火人,都是区间修改,但是函数一定保持单增。

此时时间过去了一个半小时。确实是稍微慢了一点,但是思路应该是没有问题!

……

此时时间过去了四个小时。心态崩了。大样例过不了。想家了。半个小时的倒计时,仿佛血的沙漏,要一滴一滴地流干。

平时都没有遇到过调不出题的情况,何况是有两个半小时的充裕时间。 s x y \tt sxy sxy 是机房的另一个大佬,平时都是我帮他调题的。这一次,竟然是他成功了!

究竟是人性的扭曲还是道德的沦丧?我噙住泪水,忍痛改回了 O ( n log ⁡ 2 n ) \mathcal O(n\log^2 n) O(nlog2n)

……

若时间倒退回还剩两个小时前(也就是 T 1 \tt T1 T1 开始写了 1 h 1\text h 1h 后),当时我正在犹豫,究竟应该做些什么。我看看 T 2 , T 3 \tt T2,T3 T2,T3 ,感觉 T 2 \tt T2 T2 是推式子的(卷积一类?才复习了 N T T \tt NTT NTT 的我希望如此),而 T 3 \tt T3 T3 是完全不可做的,即使会线性基也不行。 T 2 \tt T2 T2 小推了一下,只觉得 f ( k ) f(k) f(k) 令人沮丧至极。

仔细思考了一下,感觉 T 1 \tt T1 T1 是决定 d a y    1 \tt day\;1 day1 得分的关键。没得说了,必须调出来!

……

改回了 O ( n log ⁡ 2 n ) \mathcal O(n\log^2 n) O(nlog2n) ,至少过了大样例。 T 2 \tt T2 T2 匆匆写了一个暴力,非常暴力,甚至忘了用杨辉三角。

d a y    1 \tt day\; 1 day1 之结局

跟同学们讨论了一下,其他人都觉得完全不可做。 X E Z \tt XEZ XEZ 倒是说了 T 2 \tt T2 T2 m = 0 m=0 m=0 f ( k ) = a 0 f(k)=a_0 f(k)=a0 时,有二项式展开的部分分。然后他们又说,组合数会爆,必须写杨辉三角。

我的组合数是个啥呢?硬乘,硬除。教练直呼内行

我想,我完了。 X E Z \tt XEZ XEZ 这样高度概括了我的 d a y    1 \tt day\;1 day1 ,他的原话是:“你这个 × × \times\times ××!你怕不是个 × × \times\times ××吧!”

提示, × × \times\times ×× 与沙壁同音。我想,大样例过了应该没问题, 60 60 60 吧,等死。

d a y    2 \tt day\; 2 day2

抱着必死的决心,我战战兢兢地坐到了位置上。我唯一的希望就是,要把题调出来!

题目一看, T 1 \tt T1 T1 的复杂度已经暗示的足够明显了,肯定是状态压缩。但是一开始根本没有想到,于是又往 T 2 \tt T2 T2 看。

T 2 \tt T2 T2 是极其复杂的,直到现在我知道了骗取 80 80 80 分的做法,还是感觉非常毒瘤。

当时也考虑了拆位,也幻想过往上算贡献,最后的结果却是一条链、 v i = 1 v_i=1 vi=1 都搞不定。

T 3 \tt T3 T3 却蛮不错,可以拿 50 50 50 分,因为矩阵树是显而易见的。但是当时想错了,以为 w i w_i wi 为质数也能处理。

最后的一个小时,我突然意识到 T 1 \tt T1 T1 的贡献是可以拆开的,就可以使用状压。复杂度 O ( m 2 2 m ) \mathcal O(m^22^m) O(m22m) 是平凡解。又意识到权值可以预处理,就改成 O ( m 2 m ) \mathcal O(m2^m) O(m2m) 了。

d a y    2 \tt day\;2 day2 之结局

感觉可以过 80 + 10 + 70 80+10+70 80+10+70 ,后来经 z x y \tt zxy zxy 提醒就变为了 80 + 10 + 50 = 140 80+10+50=140 80+10+50=140

给我妈打了个电话报喜,因为我说的是第一天考砸了,今天干得漂亮。

还真是干得漂亮呢。

最后的最后

然后我的真实得分是多少呢?😃

0 + 0 + 0 + 0 + 10 + 30 = 40 0+0+0+0+10+30=40 0+0+0+0+10+30=40

人傻了,我就是从这里跳下去,死外边,也不会再碰 O I \tt OI OI 了。

明年见。


附录

d a y    2    T 1 \tt day\;2\;T1 day2T1 是死在了空间上,预处理的权值数组开爆了。哪个死出题人又卡空间又不开O2

d a y    1    T 1 \tt day\;1\;T1 day1T1 尚待勘探。 d a y    2    T 3 \tt day\;2\;T3 day2T3 不明不白。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值