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

山东五一集训2026

想不到吧,一年前的今天我就在这里,一年后的今天我还在这里。

Day 1

  1. P1438 无聊的数列。
    简单题。
    我们注意到差分是再求前缀和是原数组。所以,我们在线段树树状数组上维护差分数组 \(d_i = a_i - a_{i - 1}\),然后对于每次 \([l, r]\) 进行修改即可。然后在 \(r + 1\) 的位置上再减掉 \(D \times (r - l) + K\) 即可。

  2. P2023 [AHOI2009] 维护序列。
    板子题。
    简单,我们直接把懒标记拆成两个,一个乘法,一个加法。考虑乘法对于加法的优先级,然后随便拆拆就行了。

  3. CF438D The Child and Sequence。
    势能分析。
    我们考虑对于任意一个 \(x > p\),一定有 \(x \equiv y \pmod p\),且 \(0 \le y \le p - 1\),则定有 \(y \times 2 \le x\)
    所以,每一个 \(x\) 至多经历 \(\log x\) 次数就会变成 \(0\)
    我们考虑势能分析,单点至多赋值 \(m\) 次,所以总的时间复杂度就是 \(O((n + m) \log V)\)

  4. CF61E Enemy is weak。
    简单题。
    直接考虑中间的点,考虑前面多少个严格大于 \(a_i\),后面多少个严格小于 \(a_i\),再乘在一起再相加即可。

  5. CF935F Fafa and Array。
    我们考虑,对于我们把 \(pos\) 这个位置的值加上 \(x\),会产生的贡献是 \(2 \times (x - \max(-d_{p - 1}, 0) - \max(d_p, 0))\)。下面的思路比较显然了,我们令 \(g_p = \max(-d_{p - 1}, 0) + \max(d_p, 0)\),我们使用线段树维护这个区间的 \(\min\),然后对于 corne cases 直接处理即可。

  6. CF1527E Partition Game。
    考虑DP
    \(f_{i, j}\) 表示前 \(i\) 个数字恰好分成 \(j\) 组,那么我们轻松列出转移方程:
    \(f_{i, j} = \min f_{k - 1, j - 1} + w_{k, j}\)
    其中,\(w_{i, j}\) 定义为 \([a_i, a_{i + 1}, ..., a_{j - 1}, a_j]\)\(cost\) 值。
    接下来考虑如何计算 \(w\) 值。很明显,如果 \([i, j - 1]\) 中存在一个 \(a_k = a_j\),那么 \(w_{i, j} = w_{i, j - 1} + j - lst_{a_j}\),其中 \(lst_{a_j}\) 表示 \(a_j\) 最后一次出现的位置;否则,\(w_{i, j} = w_{i, j - 1}\)。这样我们得到了一个复杂度为 \(O(n^2k)\) 的做法。
    考虑线段树优化。我们令线段树的 \(st_k = f_k + w_{k + 1, i}\),我们可以发现,如果 \(k + 1 \le lst_i\) 的话,则 \(a_i\) 并非首次出现,所以我们这时候可以统计上代价。所以,我们对于区间在 \([1, lst_{a_i}]\) 中的每一个元素加上代价为 \(i + 1 - lst_{a_i}\) 即可。复杂度为 \(O(nk\log n)\)

  7. CF833B The Bakery。
    我们容易发现,这个题和上面那个题的解法大致一致。
    我们状态设的一样,然后我们考虑,对于 \(lst_i \le p\) 的所有位置,这个的数字个数会加上一,所以我们只需要改一下上面的修改的地方就可以了。还是非常相似的。

  8. CF813E Army Creation。
    我们使用瞪眼大法,令 \(bad_i\) 表示从 \(i\) 向前数 \(k\) 个的位置。特别地,如果没有这么多,那么我们令 \(bad_i = 0\)
    接下来,我们直观的发现,我们只需要令在区间 \([l, r]\) 之间的所有同一个值的元素的前 \(k\) 个的权值为 \(1\),剩下的是 \(0\)。注意到,这个条件等价于 \(bad_i < l\),所以我们的统计问题就是在 \([l, r]\) 之间 \(bad_i < l\) 的个数。考虑主席树优化即可。

  9. CF893F Subtree Minimum Query。
    我们考虑直接做的话不会很好做,所以我们考虑再 DFS序 上面做。
    我们考虑,对于所有在 \(x\) 的子树中,定存在 \(dfn_x \le dfn_y \le dfn_x + size_x - 1\),而且我们要找出 \(dep_y \le dep_x + k\)。所以,我们用 dfn 建立可持久化线段树,然后支持区间查询即可。

http://www.jsqmd.com/news/739731/

相关文章:

  • 终极指南:如何在Mac上一键解锁QQ音乐加密歌曲,实现真正的音乐自由
  • 如何快速构建REST API集成:Budibase低代码平台终极指南
  • 【稀缺首发】Python 3.15 beta2中未公开的类型系统彩蛋:LiteralString强化、Never类型收敛优化及VS Code 1.96智能补全适配方案
  • 效果展示,Taotoken按Token计费模式如何帮助小项目控制成本
  • 探索RBBAnimation的未来:新特性与路线图展望
  • Elsevier投稿系统Editorial Manager实操:Cover Letter怎么写?审稿人怎么选?
  • Fan Control终极指南:Windows风扇控制软件完美中文显示解决方案
  • 告别经纬度!用Python实战解析国家地球网格标准(附32级编码生成代码)
  • 前端面试终极指南:如何通过用户体验优化赢得大厂Offer
  • 估值超900亿,华为“剥离子”超聚变冲刺A股,算力竞争谁能拔得头筹?
  • 终极指南:5步打造你的专属网易云音乐沉浸式播放界面
  • 从零构建个人开发者主页:Hugo+GitHub Actions+Vercel实战指南
  • C++引用与指针:核心区别全解析
  • 从功能与体验选学习机,五一重护眼、AI、纯净度,兼顾长期价值 - 海淀教育研究小组
  • 【Backend Flow工程实践 18】Clock Tree:为什么时钟网络不是普通 net,而是后端实现的节奏系统?
  • 在Taotoken模型广场中根据任务与预算挑选合适的大模型
  • 如何快速构建企业级表单:JSON Form从基础到实战的完整指南
  • Fui社区生态:如何参与项目开发和获取技术支持
  • Zigbee vs Wi-Fi——两种世界观:同一频段下的不同取舍
  • 信奥赛CSP-J复赛集训(DP专题)(24):出租车拼车
  • 如何快速部署智能交通分析系统:用PyTorch视觉模型库实现高效车辆识别
  • 5G NR里那个默默救场的HARQ,到底是怎么把丢了的包‘拼’回来的?
  • 告别官网!在PyCharm里直接调ChatGPT写代码,这个插件真香(附完整配置流程)
  • 别再手动调动画了!Blender 3.6 自动关键帧与插值曲线实战,5分钟做出丝滑运动
  • 如何快速上手Transitioner:5分钟创建惊艳视图过渡效果
  • 基于Next.js与GraphQL的自建博客系统Letterpad部署与深度定制指南
  • 从内容与教研看学习机,五一选 “真自研”,拒绝碎片化资源 - 海淀教育研究小组
  • 探索IPXWrapper:为现代Windows系统重建经典游戏网络桥梁
  • Photoshop AI革命:5分钟打通创意与技术的SD-PPP完整指南
  • 保姆级教程:解决ORB-SLAM2编译PCL报错与段错误闪退(含C++14、-march=native全攻略)