2021.10.27
早上先回教室了,请了个假就上楼了,我以为有模拟来着
写了个kmp板子复习一下,然后就到7:30了
啊欧,所以今天没有模拟赛,哈哈
决定先把扩展kmp及z函数学完(见1025);
所以说其实是有模拟赛的
先看了一会题
做题顺序:3 1 2 4
T3
主要的难点就是输出的每行字符串字符数不能超过500,于是抱着拿20分的想法去写了
思路:
其实最开始是抱着打表也能得几分的想法去写的,但当我打了三个数以后,发现打表的话脑子真的不够用,不如试着写写暴力。于是想到了只用加减法,每次数字循环到它可循环的最大值以后break,进行下一次循环。写好之后发现估计要超过500,所以决定加入乘法(除法,括号什么的根本没打算写,首先是太复杂了,其次是我也不会T-T),在写乘法的过程中,主要调试了乘以1的问题,因为乘以一对答案根本没有贡献,反而会增加字符串长度(得不偿失),在加法乘法结束后,发现会缺少1~4的价值,(因为可使用数字中最大为5),所以在这里只对1-4又进行了一个打表,注意的是六个数字必须循环,所以要打6*4个的表。
然后在考试要结束的20分钟前,我发现它不能用减法,我的算法就此失效了,尝试改正,未果。
期望得分:0()
T1
运用了一下哈希,应该能得一点分,样例是错的就太离谱了。总而言之目前暂时未发现太大问题。
期望得分:10(救命
考试结束了
得了总共十分
第九名()
T1 string
正解:
写个暴力DP, f[i][j]表示长度i,当前a 串上匹配到j , b串上匹配最多能到哪。
注意到出现最少的字母至多出现n/26 次,所以答案不超过n/13+1 。所以暴力转移(每次26 )复杂 度就是(On^2) 。
原本的哈希代码经修改可得20分。
T2 forest
正解:
二分答案。
正解需要卷积,所以我不会‘——’;
T3 reek
题解表述不清晰,(对我自己来说),
我无法理解,正解居然是打表
T4 path
对于每个询问我们将询问点建出虚树,将初始路径(就一个一个走)每个点经过几次算出来。
如果一个点被经过了超过v+1 次那么没救了,否则我们找到任意一个经过超过 1次的点,那么经过它 的路径必须要整掉一条。我们枚举整掉哪一条(只有 ≤v+1个选择),更新贡献然后递归到v-1 。
也可以用链剖代替虚树,不过应该会难写很多,也不一定会更快。
本次模拟没学过的知识点:虚树,链剖,卷积
                    
                
                
            
        
浙公网安备 33010602011771号