CSP-S T2 复杂度求验证
  • 板块学术版
  • 楼主ganpig
  • 当前回复9
  • 已保存回复9
  • 发布时间2023/10/21 19:53
  • 上次更新2023/11/2 12:10:53
查看原帖
CSP-S T2 复杂度求验证
424454
ganpig楼主2023/10/21 19:53

我的做法是:第一步,设从第 ii 位开始,至少到第 fif_i 位才能全部消掉,倒着遍历一遍 ii,根据后面已求出的 fjf_j 往后跳(j←fj+1j \gets f_j+1),直到 si=sjs_i=s_j 为止,然后 fi←jf_i \gets j

第二步,正着遍历一遍,以同样的方式往后跳,将从第 ii 位开始能跳的次数记为 cnticnt_i(如果之前跳的时候已经经过了第 ii 位则 cnti=0cnt_i=0),答案是 ∑cnti(cnti+1)/2\sum cnt_i(cnt_i+1)/2

这个做法能在 0.01s0.01s 内正确通过大样例,但不知道在第一步能否构造出数据把复杂度卡到 O(n2)O(n^2),求大神们帮忙提供 hack 数据或线性复杂度证明,谢谢啦 orz

2023/10/21 19:53
加载中...