2021/11/8模拟赛

博主分享了在算法竞赛中的经验,详细记录了解决T2问题时尝试避免回文串并优化时间复杂度的过程,以及T3问题通过离线处理和排序节省时间复杂度的策略。同时提到了T1深搜的挑战和T4的解决思路,包括使用线段树维护前缀和。此外,还讨论了冒泡排序错误和如何通过排序找出规律。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

7:50−8:207:50 - 8:207:508:20
读题
8:20−9:108:20 - 9:108:209:10
DFS 搜索 T2T2T2 中不回文的字串看能否凑出一整个字符串,但是好像记得有个啥算法能快速求出来所有回文串?好像马拉车可以求出来以每个点为中心的最长回文串?这样的话我就避开以该点为中心或找长度大于以该点为中心的回文串长度的回文串。然后又发现其实是对后面有影响的,每次不合法还要往前回溯,感觉浪费的时间也不少。
9:10−10:109:10 - 10:109:1010:10
T3T3T3 来来回回算时间复杂度和空间复杂度,打了个像 01背包 一样的 递推,而且主动忽略 k 的影响应该在 353535 左右
写完后想到了个小优化,可以 sort 后离线做,忽略多测的影响,最多是测 150150150 组。算是省了一大笔时间复杂度了。
但是还是可能被 505050 的那一档分卡住。手构数据发现离线后没有把结果按照原来的顺序排序,还好及时改正了。
其实除了多拿的 151515 分外,有一档特殊数据是 202020 分,但是奔着 151515 这个如果没成顶多是 TLETLETLE202020 那个还可能 MLEMLEMLE
10:10−10:3010:10-10:3010:1010:30
写个 sort 排序和题干中错误的 冒泡排序 对拍,企图找到题中排序错误的规律。
10:30−10:4010:30 - 10:4010:3010:40
又对着代码看了十分钟没太明白,我忘了正确 冒泡排序 应该是怎样的了
10:40−11:2510:40 - 11:2510:4011:25
T1T1T1DFS
11:25−11:3011:25 - 11:3011:2511:30
T4T4T4 写了个随机数,第三次就过了样例 111
11:30−11:5011:30 - 11:5011:3011:50
算上刚刚打表对拍找规律,感觉如果是 1,5,21,5,21,5,2 这种类似摆动数列的好像都会挂,结合代码证明不出来什么,于是就按照题上的错误冒泡排个序,再 sort 排个序,对比下结果是否相同。
(这把sort立大功了属于是
11:50−结束11:50 - 结束11:50
检查文件名和 freopen 之类的东西,以及版本问题。


T1T1T1 的深搜写挂了,只有 555 分就肥肠难受,别人搜的好的还有 353535 的有 404040 的。但是保底也该有 303030 分的。没有太往 动态规划 上想。正解是 前缀和优化DP 但是前缀和不是重点,动态规划很难想。

T3T3T3 好像真的比别人多水了一档分,sort 离线做省掉 qqq 确实比别人分略高。
这个题表面上给的 1024MB1024MB1024MB ,但是背地里还是偷偷能卡一下空间(其实只要不是无脑,用等差数列前 NNN 项和公式算一下,就能把空间卡到 700MB700MB700MB 以内,而 STDSTDSTD 中的有剪枝,512MB512MB512MB 都卡不住,所以还是要尽量优化,注意空间大小,爆空间比爆时间还可怕)。
然后题里还有一个很没意思的点就是卡 mod ,得用三目运算符优化,写成类似这种的sum[j] = (sum[j - i] + f[i][j]) - ((sum[j - i] + f[i][j]) > Mod) * Mod;都不行。(最后加了个 火箭头水过去了)。

T4T4T4 相当于下标是奇数偶数的分开sort了,找到规律,然后线段树单点修改动态维护前缀和。


T1T1T1 深搜写挂 252525

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值