2022.4.4模拟赛总结

时间安排

7.31
拿到题面,T1像个圆方树,T2像个ACAM/SAM+矩乘,T3线段树优化建图+差分约束
7.51
T1是圆方树吗,感觉有点像,但画了一下反例貌似很好举,一个菱形图加一条对角线是两个简单环共用同一条边,如果BCC+圆方树的话只有一个方点,无法作为简单环的判定条件,但这题应该就是边双或者点双呀,不然暴力也写不了
8.00
又审错题了,这是求满足条件的边的数量,我一直在想点,那能不能进行一下点边转换
8.09
还是没有很好的思路,有点忘记点边转化后图怎么画了,但读对了题后可以发现我的这个反例图中的所有边都不只处于一个简单环中,对于一个简单环,假如一条新边后,这条新边和原来在环上的边都非法,且仍是一个BCC,即使是一个完全图依然全部非法,现在问题变为如何判断一个点双是否是单纯的一个圈,如果是那么它内部所有边都是符合条件的,否则都不符合条件,判断是不是一个圈只需要判断点数=边数即可吧,问题来了,点双怎么写代码…得先求割点,然后根据割点划分开,割点应该是删掉后图不连通,然后还需要判断一个flag(根需要特殊判断?)冷静一下先过,一会儿再回忆
8.56
思考T2dp,这个东西我感觉不好做dp呀,是存在一定的后效性的,假设从i开始匹配一个字符串长度为len,即f[i+len]=max(f[i])
但这里的max不仅仅是一个值,还代表在这里填了一个字符串,会影响到下一个字符串还需要填的长度,哦!所以可以记一个二位状态f[i][j]表示填到第i个位置,第i-len_j+1—i填的是字符串j的最优答案,貌似也不对,影响下一个长度的可能不仅仅是当前的串,如果当前串极短的话,前一个串也可能影响吧,哦并不会,因为是承接关系,所以无影响,那么就可以利用一个字符串Hash来dp了吧,思路来源于jjh的线性代数随机游走一道题
初始化:f[len_i][i]=a_i;
求max(f[i][j])
先做一个m^2*len的Hash预处理
9.28
在调试了很久,加了许许多多奇奇怪怪的特判后,终于过了样例,但由于加了两个特判,我不太能确定是否完全正确,思考了一下如果我写个暴力dfs,肯定没分,而且随机数据没有效果,无法对拍。随便造了个小数据,把自己Hack了,问题就出在我加的特判上,当我这里在i的末尾填串j,同时兼容下了k的话,那么在位置上的转移关系实际上是i->i,这样的转移有点难搞,
9.51
T2实在写不下去了,dp推得脑子已经乱了,换题了,T3是线段树优化建图差分约束吧,貌似挺简单的?但码量貌似也不简单

还剩不到俩小时了,每个题感觉都会正解但感觉都写不出来,好难受

先试着写一下T3吧,暴力还是很好写的
10.20
T3暴力写出来了,准备上线段树优化
10.43
完成线段树优化建图,写的时候发现不需要差分约束,直接topsort即可,但暴力代码写的是差分约束,思路不同导致答案输出不同,SPJ无法进行对拍,很难受,自己造几组小数据试试吧,哦!下发有大样例,但我要手写个SPJ,貌似不难,但我没写过,时间也不多了,还是算了吧,大样例测时均可过
11.03
极其别扭的,根据缺什么写什么的套路,把我的T2dp修了修,过了下发的所有样例,但由于细节太多,我推不动矩乘式子了,所以过了
11.03—end
时间赶了,没实时记录,把T1的割点写了一下,但我只会求割点,不会做点双后面的步骤,然后就写了个暴力代码,用set维护了一下,结果最后一组样例都没过,我也不知道为什么挂了,自己造的图都能过

赛后反思

10+50+100
T1的做法还是挂掉了,不会背板子就难受
T2拿了个50,正解看了眼别人的代码貌似是fail树dp+矩乘优化,但我的那个可能也能过吧,挂了20分的暴力,不是很理解(我也不是很理解我的代码了,思路太不明确了),应该是少了哪种特殊情况没判吧
T3过了保命了

在家打比赛肯定掉状态,不过这场还好点吧,很大的问题就是在于有思路不会写代码,对某些知识点的遗忘甚至不理解,T3没什么说的,是一个我可以自己理解的东西,T1的tarjan我是真的不理解,怎么都学不明白,只能靠背,我觉得如果我能理解懂tarjan的真正含义的话,这道题A掉还是很简单的,问题就是哪怕我订完题,我再去看看博客什么的,我还是搞不明白dfn,low这些东西到底在干嘛,只能靠死记硬背的话效果当然不好,T2的AC自动机还不至于此,这个纯属遗忘知识点,加上广义矩乘也遗忘了,考场上一眼就出的算法不会写,复习一下做几个题其实还能挽回,自动机的几个算法我都能理解本质,但是太久没针对AC自动机系统学习就导致对它不敏感以及不会写,有时间真的需要归纳一下字符串这块的实际应用范围,明确区分一下SAM与ACAM

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值