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

[NOIP2020] 微信步数

[NOIP2020] 微信步数

为什么有一个 \(80pts\)\(100pts\) 毫无关系??

80pts:\(w \le 10^6\)

想法很简单,因为每一维都是独立的,对于第 \(i\) 维的第 \(j\) 个格子计算出它什么时候“出局”,记作 \(t_{i, j}\)

那么对于初始位置,答案就是 \(\min(t_{1, a_1}, t_{2, a_2}, \dots, t_{k, a_k})\)

\(t\) 从大到小排序(基数排序),枚举这个最小值计算答案。

时间复杂度:\(nk + \sum w\)

100pts

换一个角度,不要计算每个格子什么时候出局,计算对于时刻 \(t\) 还有多少格子没有出局,求和即为答案。

每一维还是独立的。对于每一维,先考虑第一轮,设 \(l_{i, j}, r_{i, j}\) 表示第 \(i\) 步后第 \(j\) 维的最小位移/最大位移,则只有 \([-l_{i, j} + 1, r_{i, j}]\) 没有出局,这一维有 \(w_j - r_{i, j} + l_{i, j}\) 的取值,乘起来即可。(\(80pts\)\(t_{i, j}\) 也是利用这个加上双指针可以直接计算。)

设走完一轮后第 \(j\) 维的最终位移为 \(s_j\),则第二轮中第 \(i\) 步后第 \(j\) 维有 \([-\min(l_{n, j}, s_j + l_{i, j}) + 1, \max(r_{n, j}, s_j + r_{i, j})]\),后面的都是这种形式,设第二轮有 \(p_{i, j}\) 种取值,则第 \(c\) 轮有 \(p_{i, j} - (c - 1)|s_j|\) 种。

于是第一轮单独处理后,计算每一轮第 \(i\) 步结束后的答案就是(\(R_i\) 是轮数最大值,即第 \(R_i + 1\) 轮有的维没有取值了):

\[S_i = \sum\limits_{c = 1}^{R_i}\prod\limits_{j = 1}^k p_{i, j} - (c - 1)|s_j| \]

\(R_i\) 可以很大,可以看成未知数,其他看成参数。注意到后面一坨其实是 \(k\) 个关于 \(c\) 的一次函数相乘,然后求和。整个式子是 \(k + 1\) 次多项式,可以直接由拉插得到答案。

时间复杂度:\(O(nk^2)\)

总结

这个题虽然最开始 \(80pts\) 看起来很高,其实没有前途,因为无法避免求 \(t_{i, j}\)

换一个角度思考:对于每个时刻计算贡献。得到 \(S_i\) 后要机敏的发现可以用拉插维护,因为整个式子中只有 \(R_i\) 很大,其他都很小。拉插正是将一个很难求的 \(f(n)\) 转化为 \(k + 1\) 个好求的 \(f(x_i)\)

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

相关文章:

  • 2026年4月美甲培训公司口碑推荐,化妆培训/纹绣培训/美甲培训/美发培训/彩妆培训,美甲培训机构口碑推荐 - 品牌推荐师
  • 按键电路设计
  • MDB Tools终极指南:在Linux和macOS上完美操作Microsoft Access数据库的5大核心技巧
  • Pearcleaner:彻底清理Mac应用的终极指南,释放宝贵存储空间
  • 终极Windows和Office激活指南:3分钟完成永久免费激活的完整方案
  • 数字时代的记忆守护者:重新定义你的聊天数据价值
  • 终极像素艺术CSS响应式设计:如何在不同设备上完美展示像素艺术
  • 使用Taotoken统一API为多模型AI应用提供稳定后端服务
  • 合金厂商怎么选?2026年高品质的HC-276合金厂商推荐 - 品牌2026
  • Sweep社区精选:10个最受欢迎的定制版本和特色分支
  • 终极指南:如何将idiomatic.js规范完美融入Angular应用开发
  • 缓存和数据库一致性
  • 在VMware ESXi 7.0上给Ubuntu 18.04直通Tesla P100显卡,我踩了半年的坑终于填平了
  • autosub性能调优:如何提升语音识别准确率的10个实用技巧
  • TechXueXi终极指南:提升学习效率的10个实用技巧
  • [具身智能-597]:具身智能9步学习法:①机械本体 ②电机运动 ③传感/感知 ④仿真 ⑤数据与存储 ⑥规划/控制/模型/算法 ⑦学习/训练 ⑧仿真到现实 ⑨端云协同
  • Modern JavaScript Cheatsheet 容器化:Docker和Kubernetes部署终极指南
  • AI赋能开发:让快马平台智能优化你的7ku路7cc组件代码结构与性能
  • Canarytokens与Terraform集成:基础设施即代码安全监控的终极指南
  • 技术学习路线图制定终极指南:Awesome Learning Resources学习路径规划
  • 2026深度分析罗兰艺境B2B产业园招商GEO技术案例,测评苏锡常高新智谷优化过程与效果验证 - 罗兰艺境GEO
  • Rekall高级用法:如何编写自定义插件扩展取证功能
  • Nodejs后端服务调用Taotoken聚合API实现智能客服回复
  • 别再手动轮询了!STM32 HAL库串口DMA空闲中断接收不定长数据,实战解析SBUS遥控器信号
  • 如何快速部署web3-react:从开发到生产的完整指南
  • 低膨胀合金厂商哪家好?UNS K93600低膨胀合金厂商联系方式 - 品牌2026
  • KISS-ICP实战部署指南:从开发环境到生产系统的完整流程
  • 别再死磕V1了!手把手教你用WPS Web Office V3 SDK快速集成(附Java Demo避坑指南)
  • 使用Taotoken CLI工具一键配置团队开发环境中的API密钥
  • 终极指南:免费高效的微信聊天记录导出工具完整使用方案