当前位置: 首页 > news >正文

2025/7/28 总结

上午在 xmoj 上打了场模拟赛

A

用时:20min

看到数据范围很小想到可以枚举不是回文串的串,然后判断后缀是否是回文串,如果是则加上前缀分为两个回文串的方案,显然是可以预处理的,判断回文串正反两边哈希即可。

但貌似出题人卡了自然溢出?想到的时候已经结束了。

总结:写哈希不要偷懒用自然溢出,最好能写双哈希,防止卡哈希出题人。

B

用时:10min

数学题,被薄纱了。

总结:要多加强数学。

C

用时:1h30min

首先离他最近点的可以直接多源 Bfs,卡了大概 30min 左右。

而确定顶点特别麻烦,至少需要 \(O(n^2)\),发现只要确定一行中两个点就能确定正三角形的顶点,双指针一下即可,快速统计和可以斜着做一遍前缀和,反斜做一遍即可。

总结:做题要有举一反三的能力,不要遇到这种换皮题就看不出来,对于这种数据范围不大的看似是数学的题,可以想一下不是数学的解法。

D

用时:30min

想着枚举往左做几步,右走几步,但中途可能超出 \(-n\)\(n\),顺序可能影响答案,想到 DP,但有后效性,想起之前一道 AT 的套路把步数拿出来做属性,这样就没有后效性了。

考试时开了 5000 * 5000 的 long long 数组,成功的 MLE 了。

总结:写完代码看到一些比较大的数组要计算空间复杂度,例如 1e7 的数组,5000 * 5000 的二维数组,尤其是 long long 类型的。

Sleeping Schedule

用时:20min

简单 DP,设计状态 \(f_{i,j}\) 表示睡第 \(i\) 次觉在 \(j\) 开始,转移也很朴素。

Ezzat and Grid

用时:1h

反过来考虑,选择最多保留几个,相邻保留条件可以看成区间有交集。

然后类似 LIS 的状态设计,\(f_i\) 表示保留 \(i\) 前面最多保留几个,转移就是找到前面最大的 \(f_j\)\(i,j\) 有交。

用一个线段树优化即可,而发现取值其实是单调递增的,区间取 max 可以变成区间覆盖。

总结:正难则反,很多题都可以这样思考,尤其是保留与去除,添加与删除。

http://www.vanclimg.com/news/827.html

相关文章:

  • 7.27 周总结
  • 存贮电解液配方的二进制格式与解析它的010 Editor的模板
  • 读《大道至简——软件工程实践者的思想》有感
  • 垃圾话1
  • 春训#1题解
  • js第一天
  • java学习(大道至简读后感)
  • linux中常用的数值计算
  • 【问题】--Macbook相关问题
  • 软工作业day27
  • 2025.7.28 闲话:CF678E Another Sith Tournament 倒序状压 DP 的一点想法
  • 7.28随笔
  • 外培总结
  • CodeBuddy IDE小试-单元测试篇
  • 7.28总结
  • 枚举算法
  • Linux基本命令和Vim基本操作
  • 带外安全更新深度解析:ATL漏洞与IE防御措施
  • 更多脚本详见csdn
  • Golang基础笔记十五之sync
  • 2025总结
  • 记一个由tinyint类型引发的低级错误
  • 2025最新程序员面试题集合 包括各大厂面试规范,面试问题
  • 浅谈基环树
  • Day 28
  • 2025.7.28
  • 叔向贺贫
  • nest基础学习流程图
  • grabcad
  • 2025.7.28总结 - A