23/9/21 模拟赛总结

发布时间 2023-09-23 19:16:29作者: cannotdp

时间安排

7:50 - 8:10

看题,A 70 很好拿,B 一眼 DP,C 有点恐怖,D 有 20 分爆搜能拿。

8:10 - 8:30

先把 A 70分拿了。

8:30 - 9:40

想 B 的 50 分,有想法但不太会设计状态。

9:40 - 10:20

想到并实现了一个 \(O(nm^2)\) 的 DP,而且 \(m^2\) 跑不满,说不定能卡过去几个点。赛后才发现这不是 \(50\) 分的做法,我的其中一个循环是多余的,可以做到 \(O(nm)\),但是成功卡过去 \(4\) 个点,拿到了 \(90\) 分。

10:20 - 10:40

C 题没什么想法,把 D 爆搜写了。

10:40 - 11_30

C 不会最暴力的 \(20\) 分,胡了一个 \(O(n^4)\) 的算法写了上去。

11:30 - 11:50

检查 freopen,子文件夹。

总结反思

  1. 暴力要尽早打完,更高一档没思路就先打更暴力的,避免打完暴力没时间思考更高档。
  2. DP 题还是不太会,状态设计思考的时间过长。

题解

A. 质因数分解

枚举最大公约数,check 一下即可。

B.快递驿站

\(f_{i,j}\) 为第 \(i\) 天,拿了 \(j\) 个快递的最小不高兴值,可以把第一维省略。预处理每个时间点有几个快递可以拿以及已经有几个快递逾期即可。

C.移动棋子

毒瘤题。。。定义一个连续子矩阵是好子矩阵当且仅当它不含任何坏点。定义一个连续子矩阵是极大的好子矩阵当且仅当它不能再扩张一行或者一列,满足扩张后仍然是好子矩阵。枚举极大好子矩阵 \(R\) 内每个格子 \((i, j)\),将 \(R\) 按照 \((i, j)\) 为原点分为左上、右上、左下、右下四个区域,然后建虚点连边跑 dij 即可。

D.统计子序列

\(50\) 分是一个 01 背包计数问题,使用猫树分治能拿到优秀的 \(80\) 分,\(100\) 需要用到生成函数相关知识。