06 2023 档案

摘要:考虑离线。 我们从小到大枚举 RRR,考虑令 sis_isi​ 为 l≤il \leq il≤i,且 r∈[l,R]r \in [l, R]r∈[l,R] 的答案。可以发现对于询问 l,rl,rl,r,答案即为 sr−sl−1s_r - s_{l-1}sr​−sl−1​。 接着我们考虑当 R←R+1 阅读全文
posted @ 2023-06-22 17:55 HappyBobb 阅读(14) 评论(0) 推荐(0) 编辑
摘要:容易发现的是,当左端点 lll 确定时,r∈[l,n]r \in [l,n]r∈[l,n],那么 gcd⁡i=lrai\gcd \limits_{i=l}^r a_ii=lgcdr​ai​ 的不同数量是 O(log⁡V)O(\log V)O(logV) 的级别。 原因是,每次 gcd⁡\gcdgcd 阅读全文
posted @ 2023-06-20 12:34 HappyBobb 阅读(2) 评论(0) 推荐(0) 编辑
摘要:由于 m≤5m \leq 5m≤5,所以非空子序列只有 2m−1≤312^m-1 \leq 312m−1≤31 个,直接全部找出来并且放在子序列自动机上跑一下就好了。然后值域很大,朴素的用 nxt 构建子序列自动机的复杂度为 O(nv)O(nv)O(nv),vvv 是值域。这样复杂度错误,所以 ve 阅读全文
posted @ 2023-06-20 09:52 HappyBobb 阅读(2) 评论(0) 推荐(0) 编辑
摘要:我们建立出序列自动机后,令 fx,y,zf_{x,y,z}fx,y,z​ 表示在三个子序列自动机分别到达 x,y,zx,y,zx,y,z 后,能往后走子序列的数量。 容易发现对于现在在 x,y,zx,y,zx,y,z 的三个点,我们只需要往外枚举 262626 个节点,并且记忆化即可。 #inclu 阅读全文
posted @ 2023-06-17 10:52 HappyBobb 阅读(7) 评论(0) 推荐(0) 编辑
摘要:提供一个复杂度与 kkk 无关的算法。 容易发现的是,当 x<0x<0x<0 时,我们令 x←−xx \leftarrow -xx←−x, k←n−kk \leftarrow n-kk←n−k,与原题等价。 所以下文我们默认 x≥0x \geq 0x≥0。 我们先考虑最终选择所有长度 <k<k<k 阅读全文
posted @ 2023-06-16 18:26 HappyBobb 阅读(3) 评论(0) 推荐(0) 编辑
摘要:先考虑第一问。 显然构造应该为 l,2×l,4×l,⋯ ,2k×ll, 2 \times l, 4 \times l, \cdots, 2^k \times ll,2×l,4×l,⋯,2k×l,其中 2k×l<=r2^k \times l <= r2k×l<=r 且 2k+1×l>r2^{k+1} 阅读全文
posted @ 2023-06-15 21:43 HappyBobb 阅读(3) 评论(0) 推荐(0) 编辑
摘要:有一个很奇怪的做法。 我们令 fif_ifi​ 表示从 iii 出发能往外扩散的最多步数,初始时,fai=bif_{a_i} = b_ifai​​=bi​,接着类似最短路进行松弛,于是我写了一个 SPFA,然后 TLE 了几个点。 接着我们可以用 SLF 优化,然而还是被卡掉了一个点,这里还有一个有 阅读全文
posted @ 2023-06-13 19:42 HappyBobb 阅读(4) 评论(0) 推荐(0) 编辑
摘要:简单并查集。 考虑先对图进行并查集,令 fif_ifi​ 表示 iii 号节点在并查集中用 getfa 找到的结果。 对于添加边 u↔vu \leftrightarrow vu↔v,uuu 和 vvv 分别所在的连通块中的每一对点都会变得联通,也就是对于所有 x,y(fx=fu,fy=fv)x,y( 阅读全文
posted @ 2023-06-06 19:13 HappyBobb 阅读(5) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示