社区讨论

求问分数

P15652[省选联考 2026] 排列游戏 / perm参与者 3已保存回复 2

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
2 条
当前快照
1 份
快照标识符
@mmheau2h
此快照首次捕获于
2026/03/08 14:52
前天
此快照最后确认于
2026/03/10 22:23
2 小时前
查看原帖
我的想法是先用二分/倍增算出 00 的位置,设为 llrr,然后开始扩展,接下来需要找到 f=1f=1 的位置,于是:
  1. 我首先查询 ff 相对于 [l,r][l,r] 在左,还是右。
  2. 如果是左,可以通过二分,找到 ff 的位置 uu,然后将 [u+1,l1][u+1,l-1] 的位置加入栈中,然后将 ll 赋值为 uu。如果是右,则进行类似操作,即 [r+1,u1][r+1,u-1] 位置进行入栈操作,将 rr 赋值为 uu
  3. 然后调用 query(l,r),把值设为 hh,然后将 [f+1,h1][f+1,h-1] 的整数,每一个整数 xx 进行一次操作:弹出栈顶 tt,然后 tt 作为 xx 的位置。
  4. ff 设为 hh,重复步骤 11 直到 l=0,r=n1l=0,r=n-1
这样有多少分可以得到。

回复

2 条回复,欢迎继续交流。

正在加载回复...