2025/7/10模拟赛总结
2025/7/10\(\mathbf{} \begin{Bmatrix} \frac{{\Large TEST} }{{\color{Yellow}\Large Record} }\mathbf{} {No.3} \end{Bmatrix}\times{}\) NeeDna
难度主观估计:${\color{Orange} t1} <{\color{Blue} t3} <{\color{Blue} t2} <{\color{Purple} t4} $
换成了模拟NOIP的提交系统,有点意思。
题意:给定一个正整数 \(S\),现在要求你选出若干个互不相同的正整数,使得它们的和不大于 \(S\),而且每个数的因数 (不包括本身) 之和最大。
一眼预处理每个数(类似埃氏筛)然后就是一个01背包问题。 (11min)
题意:给出 \(m\),\(n\)(\(m\) 为质数),以及一个长度为 \(n\) 的数列 {\(a_{n}\)}。请你任意重排 ai 的顺序,使得 ai 是一个 mod m 意义下的等差数列。
即,存在非负整数 \(0≤x\),\(d<m\) 使得对于 \(1≤i≤n\) 都满足 \(a_{i}= x+(i−1)\times d \pmod{m}\)。
如果可行,输出任意一组 \(x\),\(d\) 的值;否则输出 \(−1\)。
分析:我打的暴力是 \(O(n^2)\) 的直接枚举一个固定点到其他每个点的所有可能,有50tps,赛后卡出了100tps,xtr的随机优化可以稳定ac,%%%。
写了2h。
正解:

这道题我写的纯暴力+HASH,预处理所有的区间,\(O(T26log26\times n^2)\),可以拿到60-70tps。(40min)
考虑优化:
-
可以不用处理所有区间,可以询问一次过一遍,把 \(n^2\) -> \(n\times q\)
-
可以用一个经典的两个桶(一个放颜色个数,一个放颜色个数的个数),就可以快速统计区间内颜色个数和每个个数的大小,\(26log26\) -> \(log26\)
-
因为是排好序的所以可以直接比较差值不用排序再hash \(log26\) -> \(1\)
最终就是 \(O(nq)\)。
正解有点难,可以用回滚莫队,线段树神秘操作,贪心+floyd,直接检验贡献……
这里说一下60tps部分分。
\(K=1\) 的时候就是一条链,中间断开了一些点,那么我们做前缀和 \(O(n)\)。
\(n,q<1000\) 时,暴力做dfs即可。
个人认为这题部分分很简单 写了20min。
Conclusion:
| 估分 | 实际分 | 实际做的分 | 实际会的分 |
|---|---|---|---|
| 270 | 280-270 | 260 | 300? |
个人反思:
做的好的地方:
- 每道题都打了暴力,分还能看。
做的不好的地方:
-
时间分配有点不合理,t2想了2h结果分最少。
-
时间复杂度没有估算正确。
-
没有检查代码的小错误(虽然运气好没有)
-
改错和听讲解时不认真,有些地方没听懂(t4)

浙公网安备 33010602011771号