写个题解。以后看一次后悔一次。
Tender Carpenter
不难发现,每个数单独一段一定是可行的。因为能够组成等边三角形。那么问题就变成了,能否分出一段长度不小于 的区间,使得其合法。显然的, 的可行性不大于 的可行性。那么枚举 判断是否合法即可。
Outstanding Impressionist
当一个区间 不是特殊的,当且仅当对于每个 ,存在 。然后直接判断即可。
Bewitching Stargazer
不难发现答案可以直接计算其中一半,然后递归下去。复杂度 的。
Refined Product Optimality
答案显然是排序之后的 。那么对于修改 ,如果 后仍不大于第一个比 大的数,那么 对应的 不变。如果大于,相当于是将 的整体左移一位,然后空出来的一位匹配 。修改 同理。这样不难发现每次修改只会最多影响到 组映射,直接维护即可。
Resourceful Caterpillar Sequence
注意到情况只有 种。第一种是 一开始就在叶子节点;第二种是对于 移动一步之后的所有情况, 距离最近的叶子节点距离都是 。情况 证明显然,情况 若存在移动一步之后 无法直接移动到叶子节点,那么他们就可以无限拉扯,直到平局。
计算情况 简单。对于情况 ,可以考虑枚举 随着 移动一步之后的位置 ,那么 需要有一个出边连向叶子节点。同时,当 时,我们就可以把 放在其中一个子树里, 放在另一个子树里。有个显然的事情, 只能往深度大的点走,所以这样 一定能走到 。那么 应该为所有距离最近叶子节点长度不小于 的点。而对于每个 ,都能对应到所有的 。也就是说,对于一个 ,其贡献应该是 。其中 为 出边不为叶子节点的数量, 为 的数量。这个可以直接预处理 ,暴力枚举 。
Earnest Matrix Complement
首先有性质:每一行的 变成的数一定相同。证明简单。
定义状态函数 表示前 行,第 行的 选 的数量。记 为第 行 的数量, 为第 行 的数量。那么有转移方程:。然后再加上一个定值,即 。如果我们改变一下转移形式,可以得到:。其中 。不难发现, 的 数量为 个。那么去掉后面的部分后就是一个整体加 ,整体取 。后面部分暴力更新单次是 次的。直接线段树维护的时间复杂度 。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性