尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

AtCoder Beginner Contest 431 题解

AtCoder Beginner Contest 431 题解
📅 发布时间:2026/6/20 8:30:23
只写了 A-F。

A

想让 \(x < y\) 变成 \(x \ge y\) 的最小 \(\Delta\) 当且仅当 \(x = y\) 取到,所以 \(\Delta = \max(0, y - x)\)。

code

B

直接模拟,记 vs[x] 表示编号为 \(x\) 的部件是否被使用过即可。

code

C

贪心,最优的匹配方案一定是前 \(k\) 小的头部匹配前 \(k\) 大的身体,分别排序之后一一 check 是否能匹配即可。

code

D

记头部总重为 \(w_0\),身体总重为 \(w_1\),如果头部重量不超过身体,有 \(w_0 \le w_1 \Rightarrow 2w_0 \le w_0 + w_1 \Rightarrow 2w_0 \le \sum W_i \Rightarrow w_0 \le \dfrac{\sum W_i}{2}\)。

即头部重量不超过总重的 \(\dfrac{1}{2}\)(这个结论其实易得,但是为了严谨还是给出说明了)。那么先贪心的把全部部件作为身体部件,然后尝试把部件移动到头部创造最大价值。具体来说,一个部件从身体移动到头部对答案的贡献是 \(-B_i + H_i\),那么我们直接令每个元素的价值为该值,做 01 背包,在 \([0, \dfrac{\sum W_i}{2}]\) 中取最大答案即可。

code

E

自然的想法是 dp,但是需要考虑后效性。不难看出这个图中重复到达一个状态一定是不优的,所以用喜欢的方法怎么做都行,注意到边权只有 \(0,1\) 所以直接 01bfs 复杂度就是 \(O(nm)\) 的,实现上有一点小技巧。

我令 \(0 \sim 3\) 分别表示上右下左,那么:

(令前后光束朝向分别为 \(k_1, k_2\))

  • 当 \(k_1 \oplus k_2 = 2\),无法转移(没有镜像反射的可能)
  • 当 \(s[nx][ny] = A\) 时,若 \(k_1 \oplus k_2 = 0\) 时边权为 \(0\),其余为 \(1\)。
  • 当 \(s[nx][ny] = B\) 时,若 \(k_1 \oplus k_2 = 3\) 时边权为 \(0\),其余为 \(1\)。
  • 当 \(s[nx][ny] = C\) 时,若 \(k_1 \oplus k_2 = 1\) 时边权为 \(0\),其余为 \(1\)。

应该能避免一些复杂的写法。

code

F

赛时只会 \(O(n^2)\) 的做法,有点菜了。但是还是记录一下,如果假了请指正qwq。

考虑 \(x\) 后能接的点 \(x_2\) 满足 \(x - D \le x_2\) ,所以 \(x_2\) 的范围就是 \([x - D, +\infty)\),直接暴力连边,注意到可能出现环,缩点之后有 \(f_{u,k}\) 表示,到 \(u\) 时 \(B\) 序列长度为 \(k\),转移简单,然后就是 \(O(n^2)\) 的了,不过肯定是没法过的。

考虑找性质,首先考虑 \(B\) 中相邻的 \(v_i,v_{i-1}\),肯定有 \(v_{i - 1} - D \le v_i\),所以 \(v_{i - 1} \le v_i + D\)。也就是,超过 \(v_i + D\) 的值不能放在 \(v_i\) 前,这启发我们排序之后按顺序插入。那么,我们每次插入一个 \(v\) 的方案,实际上跟 \(B\) 具体的样子没有关系,而只跟其中的数值有关系,因为我们升序插入,所以插在任意一个地方都满足 \(v_{i - 1} + D \le v_i\),那么要满足 \(v_i - D \le v_{i + 1}\) 的位置有 \(\sum^{v_i - 1}_{x = v_i - D}c_x+1\)(\(c_x\) 表示 \(x\) 的数量)个。(\(+1\) 是因为可以放到序列末)

我们已经解决了没有重复元素时的问题,那么考虑当存在重复元素时,问题等价于要把 \(c_x\) 个小球放到上述那些位置中,那么答案为

\[\prod_{v=1}^{max(A)}\binom{\sum_{i=v-D}^{v}c_i}{c_v} \]

code

相关新闻

  • 2025年轻钢龙骨厂家权威推荐榜单:龙骨/卡式龙骨/隔墙龙骨源头厂家精选
  • 摄影提示词
  • firewalld防火墙关闭后telnet仍然不通的原因

最新新闻

  • CANN/asc-devkit Exp函数API
  • Binding库单元测试终极指南:如何编写可靠的绑定测试用例
  • 2026年中国出海展会展台设计搭建服务商选型指南 覆盖美洲欧洲东南亚非洲中东市场 - 寻茫精选
  • 2026找汕头代理记账公司,这5个关键点你必须知道! - 企业品牌
  • AI写专著全攻略:从构思到完成,AI工具助力20万字专著高效诞生!
  • 3步搞定知网文献批量下载:CNKI-download自动化工具完全指南

日新闻

  • 信任的进化:技术实现详解——如何用JavaScript构建博弈论模拟器
  • Terrakube自定义工作流:如何集成OPA、Infracost等工具扩展IaC能力
  • grunt-concurrent快速入门:5分钟学会并行运行Grunt任务

周新闻

  • 3步解锁iOS设备:applera1n激活锁绕过完全指南
  • 39 2026 人工智能证书终极盘点,普通人选 AI 证书可以从这些方向入手
  • Redis 暴露公网有多危险?从端口检查到补救步骤

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号