sc2017新初三膜你赛3 比赛总结

这次模拟赛考得比较差,一下子掉到了 rank8,原因主要有几个方面。
还是一样,先要回顾自己赛场上的状态,找找主观因素
一开始看 T1 ,以为是个 DP,但前后都有限制,从没见过这种类型的,无从下手。顺便记下 30% 的暴力可做,去看后面。
T2 一开始以为裸的马拦过河卒,看到后面才发现数据范围比较大,传统的 DP 应该只有 50 分。
T3 的时候一开始读太快了,以为不能跳的点是固定的,想到了奇怪的容斥方法。后来发现原来不是一定的,就放弃了。看看数据规模,感觉不可做。
(主要是没有想到把行和列拆开考虑)

想了想,尝试把 T1 的限制先简化一下,解决较容易的问题。但是在如何处理“至少有一条是正确的”上面开始纠结。(转化思维不够强,没有想到可以把后缀限制统一转为前缀限制)瞎想了半个小时,弄了一些奇怪的算法,结果都能找到反例。
还是决定先把暴力打了,其实很好实现,二进制枚举+检查每条限制就可以了,虽然时间复杂度很高,但是编程容易,30 分不难拿。
(其实可以把限制去重,只保留本质上不同的,再去枚举就会快一些。但我当时竟然没有想到这个优化。)
写了 15 min,过了第一个点。

于是就去看 T2 了。分析了一下,直觉感觉应该最好是向右或向下走,所以花 15 min 写了个 O(n2) 的 DP 交了上去。结果第一个点居然没过?
先排查了一下程序里面可能出现的错误,静态查错没有发现问题。决定打个硕暴力无比的 dfs,用小数据对拍居然也出了问题。
最后发现是“根据当前坐标 (i,j) 确定所在层并获得权值”这一步出了问题,因为我的变量含义和题目稍微不同,直接套用题目中给出的式子反而会出问题。
改了一下之后再交,第一个点终于过了。但为了防止再次因为细节翻车,我还是决定按照惯例,对照一遍题目看下代码。
这个过程中果然注意到了一个地方,“对于所有数据,保证每个数都是不超过 109 的正整数。”说明答案可能会比较大。而我处理 DP 边界的方法不是在转移的时候判断 i j,而是直接在外围加了一圈 109+1 。但是这只能保证比 a 大,可能会比 f 还要小,导致取了不合法的值。
为了避免出现“无穷大不够大”的尴尬,我还是改掉了这种方法,用 DP 的过程中判断 i j 来代替转移方程,感觉这样会保险些。
事实证明,这个修改让我从 30 变成了 50。(然而这题 100 也不难想啊……

又往下看,感觉 T3 没有明显的数据梯度,只有一个“对于 14 的测试数据, n=0 ”。能不能先考虑这部分的分数呢?
从这个条件入手,我发现就是一个裸裸的 DP。但是,空间复杂度达到了 R×Tx×Ty (不过可以用滚动数组省掉一维)。而直接转移的话,时间复杂度则达到了 O(R×Tx×Ty×Mx×My) ,硕大无比,肯定会 T。但我只好赌前面会有硕小的数据,先试试正确性再说,结果交了之后第一个点没过。
不用想都知道肯定是 T 了,回去看的时候惊觉转移过程可以用前缀和维护,搞掉两维,这样应该就可以水一些点了。
但是不知道为什么,我的前缀和貌似出了点偏差。结果一直找不出问题,赛后我发现,转移的时候对于 jMx 的情况应该特殊判断一下。

客观因素

  • 题目确实难度相对比较大,全场最高分也只有 140。
  • 考场有某些其他干扰因素,影响思考。(但说明自己专注度不够强)

每次模拟赛结束的一刻我都会想,如果这就是你的 NOIp 呢?如果这就是你的 GDOI 呢?特别是 OI 模式刷新页面看到成绩的时候,百感交集。
但是赛后再来反思自己,每次都能发现一些不足,到目前为止没有一场是自己认为发挥“出色”的比赛。
更何况,现在我们还知道这是“模拟”赛,心理上不会有太多想法。一旦到了真正的赛场上,心理活动可就完全不一样了。
想想我的 GDOI2016GDKOI2017GDOI2017,连续三次,两天的签到题都“手抖”。有时我想,这究竟是偶然还是必然?或许,正是之前平时的态度有问题。
所以现在我总是告诉自己,你一定要全身心投入每一次模拟,就把它当作你的 NOIp。不幸的是,如果按这几次的成绩来看,今年肯定是拿不到一等了。
也就意味着,对自己的要求还应该更高。虽然我做到了比赛过程中不讨论,问心无愧,但是独立思考时候的思维能力却还欠缺,编程实现上也时常出现小毛病。
不管怎么说,起起落落是竞赛生涯的常态(除了极少数的大佬),一次模拟也根本决定不了什么。

总之,把心态端正好,用积极的态度面对挑战,每一天都让自己学习、巩固新知识和总结的过程中变得更充实。
做好自己的本分,享受探索和追求的过程,争取新高度,但绝不刻意苛求结果。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值