时间安排
7.50-8.10
读题面,感觉全是dp
8.10-8.25
感觉T3像是个很简单的树形dp,像上司的舞会那样维护一下每个点选不选就行了,很快码完了,样例也过了
8.25-9.00
推T1,脑子越想越混乱,左端点和右端点甚至都区分不开了,导致推不出准确的dp式子
9.00-10.00
T2的基本dp式子很好推出来,但复杂度明显过高,四重循环,考虑优化,首先最里面的循环可以用前缀和优化一下,很快解决,然后剩下三重循环我需要去掉一重n的复杂度,考虑到区间取min,于是就想到了线段树,但由于dp除了线段树里维护的一个变量以外,还有一个比较小的变量k,所以就干脆直接开了个二维线段树(26颗),来解决,码的过程中没出现细节问题,搞出来以后进行对拍,三个代码都正确
10.00-10.30
突然想起来T2有大样例,但我还没试,去试了一下,发现答案不对,又盯了会儿代码,拍了几分钟,但还是没发现问题,开始怀疑自己整体思路错误,打表查错,最后发现不是我代码问题,而是复制大样例的时候有一行因为太长复制不下来,导致程序错误,用本地测试就过了。之后挂了一个测试时间的程序,把数据打满,挂着跑了1000组,1s内都可过
10.30-11.00
码T4的暴力,T4很明显是个状压,但我状压dp学的太差,看出来但无力去码,就写了个dfs去搞10分
11.00-11.45
回头重新审视T1,首先码了dfs拿暴力分,然后继续思考正解,但还是太混乱,未果
11.45-12.00
仔细检查代码,保存
赛后反思
T1自己的想法与正解几乎一致,就是从前面递推过来,然后再加 2 左 端 点 以 外 的 区 间 个 数 2^{左端点以外的区间个数} 2左端点以外的区间个数,但考场上脑子太乱,想着想着就把前半截自己的想法忘掉了,然后莫名其妙地就把整个想法推翻了,重新去思考,使自己太过混乱。但策略安排上其实我认为还是比较优秀的,没有消耗特别多的时间死磕这道题,在分拿完以后再继续去磕
T2确实没想到除了线段树以外还能怎么去优化这个dp,好的地方在于现阶段我对于前缀和以及线段树优化dp已经掌握的很熟练了,但还有一些其他的优化方法,没有那么高的敏感度,考试时要多去向其他的优化方式上思考
T3的算法显然假了,正解是个树上LIS,话说之前去理工大打比赛的时候貌似也有个树上LIS(不会是同一道题吧),但一眼就以为是个树形dp,然后自信以为自己A掉,也很无奈。显然看来dp的状态设置的不太对,如果单纯那样设置状态,方案不会是最优解。当然这道题中也有些进步的地方,最起码没有死磕在前两题上而不管后面的题。
T4一眼状压没问题,而且是个棋盘形的,但距我上次写状压已经不知道过了多久了,联赛前状压这个专题需要补一下的,另外就算推出来状压的方程,我可能也不能很快速地思考到去用矩阵乘法优化,这个问题在上面也说过了,但问题不大,考前把矩阵乘法的题再通一遍,自己推一遍,考场上脑子里可能就全是矩阵乘法了(毕竟第一次学完矩阵乘法后,我看见dp优化就开始想矩乘)
心态状态上依然存在点问题,没有感觉状态上有多么不好,但已经连着好几场打不出应有的状态了,很迷,自己也不知道原因
与jsy还存在挺大差距的,最主要还是对于一些算法的敏感度,当然这段时间集训对很多算法的敏感度都提高了很多,但之后的十几天内,最起码把提高级算法的敏感度加强练习一下
整场比赛而言,目标要拿到的分数在本地上都拿到了(oj卡了),但T1的正解,T3的暴力,再去思考也是不难拿的,比赛时要清醒,混乱时可以把思路写在记事本上来理清楚