A
- 首先,插入的字符必须和左右两边的字符都不一样
- 其次,对于插入位置的选择,显然最好插在两个一样的字符中间,如果没有一样的字符,插在最前面即可
B
- 观察样例发现题目中要求的位置就在样例中
- 手玩一下,尝试改变样例里那个形状,发现改变任何一个格子都不满足题意,所以得出结论:题目要求的位置当且仅当六个格子形如
...
*.*
C
- 首先,左括号为1,右括号为 -1,合法括号串显然满足前缀和非负
- 在奇数位置上,前缀和总是二的倍数
- 如果要尽量缩小匹配括号之间的距离,显然能早放右括号就早放右括号
- 如果某个奇数位置的前缀和是 0,显然只能放左括号
- 否则,一定会放右括号,这样做一定没有后效性:因为如果放的话,前缀和最少是 2,一定可以支持连续放两个右括号,然后就到下一个奇数位置了
D
- 注意到 可以取到的最大值与子树内的最小值有关,考虑树形 DP
- 设 表示 以 为根的子树内最小值的最大值
- 容易列出转移:
- 对于叶子:
- 对于根:
E
- 容易发现:对于一个怪物,k 越大,越容易蘸豆,k 越小,越不容易蘸豆
- 观察询问的形式,大胆猜想回复询问是 的;而我们对于每个怪物 ,要计算出:k 至少为多少才能与这个怪物蘸豆
- 考虑二分:设当前二分的值为 ,则不与当前怪物蘸豆的充要条件是:
- 注意到 难以快速求出,但注意到,我们在计算到 时,已经算出了与前 个怪蘸豆所需的最小 ,于是我们可以使用树状数组快速求出
- 时间复杂度
F
- 首先,你需要一点注意力,注意到:
- 所有操作可逆
- 所有筹码最后都可以变到第一个位置
- 设 表示第 个位置的一个筹码的价值,则 是斐波那契数列
- 显然对于一种若干筹码的放置方式,有且一种总价值和与之对应,即有且仅有一种 的值与其对应
- 注意到 很小,考虑极端情况,在 的地方放了 1000 个筹码,这时取到最大理论价值:
也就是说,我们最多用到 这个位置
- 注意到最大理论价值最多只有 55000 量级,我们考虑统计答案的方式:枚举每一个价值和 ,如果这个价值对应的最少筹码表示就是 ,则累加“用 个筹码摆出 的价值的方案数”
- 现在的问题是,如何求 :显然考虑 DP
- 设 表示用前 个位置,摆了 个筹码,摆出 的价值的方案数
- 初状:
- 转移:
- 优化:显然可以滚掉第一维
posted @
2024-11-08 21:06
yeyou26
阅读(
48)
评论()
编辑
收藏
举报
点击右上角即可分享
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】