2026.8.14 模拟赛
https://oj.gxyzh.com/d/hzoj/contest/6a6aa51aee9cc46434e97746
| T1 | T2 | T3 | T4 | |
|---|---|---|---|---|
| 实际得分 | 100 | 25 | 65 | 50 |
| 期望得分 | 100 | 65 | 80 | 50 |
| 能力得分 | 100 | 70~100 | 100 | 65~100 |
这一场由于鏖战 T2 2h+,未果,因此心态有些爆炸,导致 T3 十分显然的优化没有 丁真 到.
长春花
诈骗题,注意到答案不超过 \(31\),因此暴力即可.
紫罗兰
算法一
场上一直在考虑使用 DFS,因为 DFS 树上只有返祖边,一般来说更好统计.
但事实上 BFS 更简单,因为难以统计的是返祖边,而非横插边.
我们通过枚举从 \(i\) 开始进行 BFS,统计包含节点 \(i\) 的环的个数:
设当前节点为 \(x\),下一个节点为 \(u\),
- 若 \(u\) 未遍历,则加入队列.
- 否则,统计长度为 \(d_u+d_x+1\) 的环,由于最短路不止一条,因此需要统计最短路个数.
最终输出时,去除重复贡献.
时间复杂度为 \(O((n+m)n)\).
算法二
考虑使用动态加边 \((x,y)\):
- 若 \(x\) 与 \(y\) 不联通,则没有贡献.
- 否则统计 \(x\) 到 \(y\) 的最短路条数.
时间复杂度为 \(O((n+m)m)\).
天竺葵
带权最长上升子序列.
50 分的暴力 DP 是容易的:
设 \(dp_{i,j}\) 表示 \(a\) 下标为 \(i\),\(c\) 下标为 \(j\) 的末位的最小值.
则有:
若 \(i\) 固定,则 \(dp_{i,j}\) 随 \(j\) 增加而增加,因此可以二分出 \(dp_{i-1,j-1}\times b_{j-1}<a_i\) 的位置 \(k\).
显然,只有 \(k\) 是需要更新的.
时间复杂度为 \(O(n\log n)\).
风信子
由于题目中给出 \(\sum k\) 的范围,因此每次询问时可以进行枚举较优的 \(k\) 个贡献.
考虑 \(k=1\) 的情况:
我们可以通过线段树维护:
- 维护区间的 \(\max,\min,\operatorname{ans}\).
- 那么 \(\operatorname{ans}_x=\max\{\operatorname{ans}_{ls},\operatorname{ans}_{rs},\max_{ls}-\min_{rs}\}\).
考虑 \(k>1\) 的情况:
考虑维护矩形的最大贡献:\(l\in [L_0,R_0]\),\(r\in [L_1,R_1]\).
有两种情况我们可以快速维护:
- 两个区间重合,则为 \(k=1\) 的情况.
- 两个区间不相交,则取左区间最大值,右区间最小值即可.
之后将矩形进行分裂,保证还是上面两种情况即可.
时间复杂度为 \(O(n\log n+\sum k\log k)\).
原题
- 暂无.
- Enigmatic Enumeration
- 暂无.
- 暂无.

浙公网安备 33010602011771号