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

CF 1048 Div.2 解题报告

A(500)

简单的分类讨论。

B(1000)

注意到我们可以只关心最后一次收集的时间点。

又注意到 \(a_i\) 越大的位置越晚收集越好。

C(1500)

模拟一下操作就会发现:(假设 \(x \ge 2^k\)

设操作前的数为 \(p\)。如果我们进行 \(a\) 次操作 \(1\) 后再进行一次操作 \(2\)。那么最后得到的数为 \(2^k+(p>>a)\)。然后你就构造就行。

D(2250)

首先不行当且仅当序列里存在一个长度大于等于 \(3\) 的下降子序列。

这样我们就可以维护一个位置 \(i\)

  • 对于所有 \(a_j > a_i(j < i)\) 中最大的 \(j\),记做 \(l_i\)

  • 对于所有 \(a_j < a_i(j > i)\) 中最小的 \(j\),记做 \(r_i\)

如果询问区间包含 \([l_i,r_i]\),那么肯定不行。

预处理每一个位置 \(i\)\(mx_i\),其中 \(mx_i=\max \limits_{r_j \in [1,i]}l_j\)

E2(3000)

首先,答案上界为 \(d=\min \limits_{i \text{ is a leaf}} dep_i\)

当且仅当在前 \(d\) 层,每一层的节点的点权相同。

其次,答案下界为 \(d-1\)。因为我们一定可以通过调整点权,使得只在一层中出现不同的点权。

然后上结论:一定可以构造方案,使得我们在考虑整层节点时,只关心深度小于等于 \(d\) 的节点也可以得到最优解。

因为如果我们需要考虑深度大于 \(d\) 的一层节点,那么我们一定可以将其换成前 \(d\) 层中的一层,因为这样花费一定更小,答案不会更劣。

因此我们把前 \(k\) 层看做 \(k\) 个物品,其价值重量均为该层点数。如果我们可以在这些物品中选出若干个物品使得价值正好为 \(x\)。那么肯定可以取到答案上界。

如果不能呢?那么我们就考虑剩下的节点,它们可以看做是价值重量均为 \(1\) 的物品。

bitset 优化 \(01\) 背包即可。

F(3500)

看不懂,等 lg 题解。

http://www.hskmm.com/?act=detail&tid=170

相关文章:

  • reLeetCode 热题 100-1 两数之和-扩展1 unordered_map实现 - MKT
  • 读书笔记:什么是对象表?
  • AI 服务路由策略:如何实现智能负载均衡
  • 在SQL语句中的别名
  • 多维度排序算法在企业级应用中的性能优化
  • 正则表达式在代码解析中的高级应用
  • vue3 项目中优雅的使用 SVG 图标(vite-plugin-svg-icons)
  • 自我介绍+软工5问
  • 车道线检测资料
  • 实现Jenkins不同账号只能看到各自任务的权限
  • 6 个最佳无代码 IT 资产管理工具推荐
  • python开发mcp入门
  • 建造者模式进阶:复杂AI服务的优雅构建
  • 代理模式在AI应用中的安全实践:AOP + 限流 + 权限控制
  • ​​高压差分探头:高电压测量的精密之眼​​
  • OCP认证烂大街了吗?别跟风问这个问题了
  • 全国连锁贸易公司数字化管理软件-优德普SAP零售行业解决方案
  • Win7、WinServer2008运行.net8.net4.8程序的解决方案
  • 虚机网络配置基础 - 小
  • 你的开发服务器在说谎-热重载与热重启的关键区别
  • 文件不只是数据-一份稳健的文件处理指南
  • 别再猜了-开始测量吧-一份实用的Web性能指南
  • 软工作业1
  • 避坑指南!Flutter 编译 Android 程序常见问题 + 解决方案,附安全加固技巧
  • [SQL] SQL Server 编写表脚本生成的SQL语句不包含索引以及触发器的解决方法
  • chrome高版本浏览器不兼容driver.execute_script(“return window.performance.getEntries()“)的解决方法
  • 移动端盒子元素实现左右可滑动且竖向页面可滑动
  • 双桶倒水的Python程序
  • 【API接口】最新可用天翼云盘解析接口
  • 搭建GZCTF平台及上传动态flag密码题目过程