2022.3.10比赛总结

时间安排

7.30-7.45

审题

7.45-8.20

感觉T3可写,但由于要向上取整这种鬼畜条件,导致我只能写最低档暴力dp

8.20-10.00

沉浸在思考的过程中

10.00-11.00

T1没什么想法了,随便写暴力准备跑路,暴力不好写考虑贪心,最大限度的贪,考虑到昨天写的向量内积,使用random_shuffle来随机化贪心

11.00-11.20

T2随便搞了个暴力跑路了

11.20-11.40

T3加了个分段,看我不考虑向上取整的鬼畜条件来 n 2 n^2 n2dp能不能骗到分

赛后反思

T1在赛场上模型还是几乎一眼就能构建出来的,很容易看出来是个网络流,赛时遇到三个瓶颈:
(1)没有将行列作为点来构建网络流的思想,局限于每个点就作为网络流中的点,再构建出行列来支配这些点,可这样点数就达到了 n 2 n^2 n2的数量级,结合 n 2 m n^2m n2m的dinic,复杂度就飙升到 n 6 n^6 n6,时间复杂度显然不对
(2)最大流问题要求的是最大,而这里要求的是最小,我又套不出最小割的模型,不知道该如何解决
(3)最大流问题的边是限制上界而不限制下界,但这里恰好反过来,依然不知道如何处理
由于存在上述三个瓶颈,限制了我不知道如何下手这道题,尤其是(1),将我彻底带偏出网络流的范围,转而想到用类似于二分图最大匹配(匈牙利算法)解决,因为这个东西与网络流很相似,算是一种特殊的网络流,且复杂度低,可以解决问题(1),但最终也没能想出如何解决

当然赛后也得知了解决方法,对于第(1)个问题,将每个点都提出来的情况显然不恰,不如直接建立行列的点,若该点合法就将其对应的行连向对应的列,将点转化为边,从而解决点数问题,也就解决了最致命的复杂度问题。后两个问题可以归为一谈,也就是将问题逆向考虑,把留下最少的点改为删除最多的点,进而上下界问题也就解决了

不过最大的问题还是对于网络流的不熟练而导致的,体现在我至今不会打dinic的板子,对于网络流的基本模型一塌糊涂,基础的建图还是可以搞出来的,但稍加套路,例如本题的建边套路,就想不到了,可这确实是很常见的,之前做题中遇见过的。以及对于问题(2)(3),其实没有必要一定逆向考虑,模型足够熟练的话正向就可以直接套用上下界最小流的模板了,这也是之前做题做过的,但缺乏练习以及时间过长而忘记了

值得提到的是考试时的一种策略,由于我这题在考试中实在是一筹莫展了,基础的暴力看似也拿不到分数,所以选择了贪心,在写完了最基础的小贪心,即先选择能使行列限制都减少的点,再选择其他的点,之后我发现此贪心的复杂度其实是极低的(归功于网络流的高复杂度),仅仅只有O(nm),受到向量内积一题random_shuffle的启发,我自己测时卡了卡随机次数,在本地1s选择了3333的随机次数,这个贪心放在省选赛场上我觉得也是极其重要的,如果这是一道大家都写不出来的网络流题目,通过贪心A题就可以直接起飞了,所以一筹莫展的时候不如多去想想贪心

不过在oj上3000的循环次数还是T了,究其原因可能是wxq给我说的random_shuffle内部的常数过大,导致我的时间复杂度出现了些问题,考试实测80分,将循环次数改为1000就可过了,但我觉得在赛场上保留3000的循环次数的策略没有问题,毕竟我是在卡了时间的情况下,且按理说oj应该比我本地跑得快,所以才牺牲更多的时间去保证正确性更高(考试时我随便对拍两个循环次数相差上百的代码,就能拍出来错),可倘若我会写在模拟退火中用到的时间过高就自动停止程序的代码,或许这题就可A了

历来我写题策略都会执着于T1,不管它难不难,我大多数时间都会和它斗上两个小时吧,其实好处就在于无论T1难度如何,每次我T1要么可A,要么极其接近正解,(这样做的原因是在我三道题都没什么思路的情况下,选择恐惧症会不停的来回切题导致啥都没想进去,所以不如就死磕一道题),但这样显然会存在很大猝死的弊端,即少了时间去思考T2,T3,双刃剑的事情,不能绝对的说一定不这么做,但应该权衡利弊后在开题初步思考后制定一个时间策略,近似的按照策略去走。故T2T3的思考时间一下子就短了下来,我几乎到11点才正式开始想T2,一个小时的思考时间和两个小时还是有差距的,且这一个小时是临近交题的时间,放在省选的氛围下也许就是脑子空白的时间了,更要压缩时间去做前面的题。

T2确实没花什么时间思考,随便借助ABC之前的一个set套vector的套路,搞了个暴力就跑了,如果有更多的思考时间,我应该是可以联想到字符串来解决,但不一定能想到广义SAM,还是因为学习的知识点不扎实的原因,导致我听到“诸神眷恋的幻想乡”的名字,我也不知道它是什么题目,读过题面才恍然大悟,不过确实对于在树上做SAM的题有印象

不会背SAM的板子也是很头痛的一件事,看出来是什么题但不会做才是最难受的吧,况且SAM的整个过程我都可以理解,不过是没有用心去背过而已,现在对于网络流和SAM的通病我觉得最重要的不是模型的构建,而是背会板子,毕竟会但写不出来才是最难受的

T3的dp我觉得没什么好说的,缺乏练习吧,练上更多容斥,dp的复杂题目,这个感觉才能出来吧

关于期望,也是缺乏大量的练习与总结吧

比赛心态上,其实慢慢看开了很多,rating什么的其实无所谓,更能让我开心的是找到了很多问题,但在比赛时应该保持更紧张的心态,现在的状态有点太逍遥了

分数上,写的代码整体上都没有丢分吧,已经在我力所能及(考场上能想到的)的范围拿到所有分数了

日后安排

1.背会SAM和网络流的板子
2.学一下怎么控制时间来结束程序
3.日后模拟赛更多的对没思路的题去考虑贪心
4.通读题面后确定比赛策略,压缩比赛时间
5.调整比赛心态,更紧张的去打比赛
6.巩固知识点

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值