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

2026ACM训练日记

目录
  • 天梯赛
    • 2026.4.15
      • L2-001 紧急救援
      • L2-002 链表去重
      • L2-003 月饼
      • L2-004 这是二叉搜索树吗?
      • L2-005 集合相似度
      • L2-006 树的遍历

天梯赛

2026.4.15

L2-001 紧急救援

链接 :https://pintia.cn/problem-sets/994805046380707840/exam/problems/type/7?problemSetProblemId=994805073643683840&page=1

题面:单源最短路,含边权(距离)和点权(救援队数)。求最短路径条数,并在最短路径中输出点权和最大的一条路径。

做法:Dijkstra 扩展。维护 dis, num (路径数), cnt (最大点权和), pre (前驱)。松弛时,若 dis[u] + w < dis[v],更新 dis、覆盖 cntnum 并记录 pre;若 dis[u] + w == dis[v],累加 num,并尝试用较大的 cnt[u] + a[v] 去更新 cnt[v]pre。最后利用 pre 回溯输出路径即可。

L2-002 链表去重

链接 :https://pintia.cn/problem-sets/994805046380707840/exam/problems/type/7?problemSetProblemId=994805072641245184&page=1

题面:给定静态链表,删除键值绝对值重复的节点,保留首次出现的节点,并将被删除节点按序组成新链表输出。

做法:静态数组模拟链表。开一个 vis 数组记录绝对值是否出现过。顺着头结点的 next 遍历原链表,根据 vis 状态将当前节点地址分别 push_back 到两个 vector 中。重组时无需修改原 next 指针,直接按 vector 顺序输出相邻元素即可(注意地址使用 %05d 格式化)。

L2-003 月饼

链接 :https://pintia.cn/problem-sets/994805046380707840/exam/problems/type/7?problemSetProblemId=994805071789801472&page=1

题面:分数背包问题。给定各物品总量、总价值与背包容量,求最大价值。

做法:考虑贪心。算出单价按降序排序,优先装单价高的,最后不足的按比例拆分。

坑点:题目中的“正数”包含浮点数!输入存在小数,必须使用 doublecin/scanf,不能使用仅支持整数的快读模板。

L2-004 这是二叉搜索树吗?

链接 :https://pintia.cn/problem-sets/994805046380707840/exam/problems/type/7?problemSetProblemId=994805070971912192&page=1

题面:判断给定序列是否为合法 BST 或其镜像的前序遍历,若是则输出后序遍历。

做法:利用前序首位为根的特性,双指针夹击划分左右子树。i 从前往后找第一个 \(\ge\) 根的(右子树起点),j 从后往前找第一个 \(<\) 根的(左子树终点)。若合法必有 i - j == 1,否则直接 return 阻断。合法则继续递归 [L+1, j][i, R],回溯时将根压入后序数组。若最终后序数组大小等于 \(N\) 则树合法。

L2-005 集合相似度

链接 :https://pintia.cn/problem-sets/994805046380707840/exam/problems/type/7?problemSetProblemId=994805070149828608&page=1

题面:多次查询两集合的相似度 \(|A \cap B| / |A \cup B|\)

做法std::set 去重存图。由容斥原理得 \(|A \cup B| = |A| + |B| - |A \cap B|\)。为避免动态开辟集合的巨大常数开销,每次查询仅需遍历 \(size\) 较小的集合,去较大的集合里查 find(),统计出交集大小 \(cnt\) 后,\(O(1)\) 算出并集大小求解即可。时间复杂度降维至 \(O(K \cdot \min \log \max)\)

L2-006 树的遍历

链接 :https://pintia.cn/problem-sets/994805046380707840/exam/problems/type/7?problemSetProblemId=994805069361299456&page=1

题面:给出二叉树后序与中序遍历,求层序遍历。

做法:逆向建树法。设全局游标 pIndex 初始指向后序末尾。倒序遍历后序序列,每次取出的必定是当前的子树根,去中序划开左右两半。因倒着读后序,结构必为“根、右、左”,故必先递归建右子树,再递归建左子树。拿到总根后用 queue 跑基础 BFS 即可。完全规避了复杂的后序边界计算。

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

相关文章:

  • 2026年当下,企业如何精明选择AI关键词优化服务商及费用把控? - 2026年企业推荐榜
  • 终极AMD Ryzen处理器调校指南:SMUDebugTool完整解锁隐藏性能
  • 洞察2026现阶段:上海复合调料直销厂商竞争力全景评估 - 2026年企业推荐榜
  • 快速搭建Image-to-Video图像转视频生成器:小白也能轻松搞定
  • 全球远程工作机会:开发者地理套利策略
  • 2026年沧州人造草坪市场洞察与核心服务商推荐 - 2026年企业推荐榜
  • ncmdumpGUI终极指南:3步快速解密网易云音乐NCM文件
  • 深入解析STM32-ADC:独立模式与双重模式的应用实践
  • 2026年Q2临沧市政工程电工套管选型指南:如何甄别真正的源头厂家? - 2026年企业推荐榜
  • Unlock Music:终极音乐格式解锁工具,释放你的音乐自由
  • FreeRTOS内存管理实战:heap堆分配方案选型与性能对比
  • 2026年至今,回收电子料工厂如何选型?这五家服务商值得关注 - 2026年企业推荐榜
  • LocalVocal:如何在本地实现专业级实时语音识别与字幕生成
  • 你的网站被“下毒”了?XSS和CSRF:前端安全的两大“毒瘤”
  • 给STM32水位检测项目加点‘智能’:如何用简单的算法优化Water Sensor读数稳定性
  • 2026年4月河北围墙护栏选型指南:为何安平县亿旭丝网制品有限公司被视为行业标杆? - 2026年企业推荐榜
  • 2026年第二季度长沙美术集训市场深度解析:五家实力画室口碑与选择指南 - 2026年企业推荐榜
  • 时间交织ADC的误差建模、校准算法与硬件实现
  • 软件测试—测试用例的设计
  • 深度解析百度网盘直链获取技术:baidu-wangpan-parse项目架构与应用实践
  • 告别虚拟机!在Ubuntu 20.04上从零搭建APM固件编译环境(附避坑指南)
  • HTML函数开发最低配置是多少_HTML函数入门硬件门槛【指南】
  • 2026年近期盘点:富民县叉车租赁服务商综合实力排行榜 - 2026年企业推荐榜
  • AIAgent代码审查能力跃迁路径(2026奇点大会闭门报告首次公开)
  • 实战解析 afl / qemu-mode / afl-unicorn 跨平台编译的典型陷阱与高效部署指南
  • 当 APM 遇上业务:阿里云 ARMS 自定义指标采集的价值
  • Mac/Linux用户福音:CrossOver 24.0.4安装配置全攻略(附语雀安装实测)
  • 2026年4月14日成都市场盛世钢联H型钢价格行情 - 四川盛世钢联营销中心
  • 3步解决英雄联盟繁琐操作:LeagueAkari本地自动化工具实战指南
  • 为什么你的多模态模型在图文检索上SOTA,却在视频问答任务中F1暴跌42%?——解构4类隐性架构耦合缺陷