杂题20200407

Connecting Cities

给定 (n) 个点和一个常数 (D) ,第 (i) 个点权值为 (a_i) ,点 (i, j) 之间有一条边权为 (|i-j| imes D+a_i+a_j) 的边,求这张完全图的 MST 权值

  • (nleq2 imes10^5)
  • (D, a_iin[1, 10^9])

我会 Boruvka 直接莽, (O(nlog^2n))

考虑分治,假设当前处理到了区间 ([l, r]) ,可以发现 ([l, mid])([mid+1, r]) 之间的某些边是不会被用到的,只用建出 区间 ([l, mid])(A_{pos}-pos imes D) 最小的 (pos)([mid+1, r]) 中每一个点的边;区间 ([mid+1, r])(A_{pos}+pos imes D) 最小的 (pos)([l, mid]) 中每一个点的边

一共会建出 (O(nlog n)) 条边,暴力求最小生成树,时间复杂度 (O(nlog ^2n))

还有一种线性的神仙做法,鸽了


GCJ 2018 Round 1B Task2 Mysterious Road Signs

给定三个长为 (n) 的序列 (A, B, D) ,其中 (D) 单调递增

定义一段区间 ([l, r]) 合法,当且仅当 (exist (M, N), forall lleq ileq r, D_i+A_i=M)(D_i-B_i=N) 成立

求出合法区间的最长长度,与最长的合法区间个数

  • (nleq10^5)
  • (A_i, B_i, D_iin[1, 10^6])

做法一:

分治,对于区间 ([l, r]) ,求出 (mid, mid+1) 对应的 (M, N) ,往左 / 往右找到第一个不满足 (M) / (N) 限制的位置,讨论四种情况即可, (O(nlog n))

做法二:

(f(i, j, k)) 为 以 (i) 结尾,限制条件中的 (M=j, N=k) 时,最长的合法区间长度

有用的状态数显然是线性的

转移可以考虑记一个 (g1(i, j)) 表示限制条件中的 (M=j, N=-1) 时,最长的合法区间长度; (g2(i, k)) 表示限制条件中的 (M=-1, N=k) 时,最长的合法区间长度

现在 (f(i, j, k)) 就可以从 (f(g1(i, j)-1), f(g2(i, k)-1)) 转移,时空复杂度 (O(n))


CF444C DZY Loves Colors

给定一个序列,初始 (a_i=i) ,每个位置的权值为 (0) ,有 (q) 次操作:

  1. 将区间 ([l, r]) 赋值为 (x) ,如果第 (i) 个位置被赋值为 (x) ,第 (i) 个位置的权值会增加 (|a_i-x|)
  2. 询问区间 ([l, r]) 的权值和

(n, qleq10^5)

结论:序列的颜色段数量在 (q) 次操作中总共只会有 (O(n+2q))

因此在线段树上,对于区间颜色相同的点直接打 tag,否则暴力递归


CF808G Anthem of Berland

给定两个串 (s, t)(s) 包含小写字母和问号, (t) 仅包含小写字母

(s) 中的每个问号变成一个小写字母(共 (26^{cnt}) 种方案),求出所有方案中, (t) 匹配 (s) 子串的次数的最大值

(|s|, |t|leq10^5; |s|cdot|t|leq10^7)

做法一:

(f_{i, j}) 为走到 (s) 的第 (i) 位,匹配了 (t) 的前 (j) 个字符,当前答案的最大值

对于 (s_i= ?) ,暴力枚举 (26) 种字符,使用 kmp 转移

做法二:

(f_i) 为走到 (s) 的第 (i) 位,当前答案的最大值

可以枚举是否在 (i) 处匹配一个 (t) 转移,由于最优解 (t) 的所有匹配位置可能有交,因此要枚举 (t) 的所有 next,但是这并不能保证 (s) 对应位置等于 (t) 的某一个前缀,因此需要保证在上一段 (s) 的末尾放了一个 (t)

因此记 (g_i) 为强制在 (s) 的第 (i) 位匹配一个 (t) ,当前答案的最大值,即可转移


CF1327D Infinite Path

给定一个长为 (n) 的排列 (p) ,和一个颜色序列 (c_i)

定义两个排列 (p, q) 的乘积为 ({p_{q_i}})

找到最小的正整数 (k) ,令 (q=p^k) ,存在 (i) 满足 (c_i=c_{q_i}=c_{q_{q_i}}=cdots)

(displaystylesum nleq2 imes10^5)

结论1:将 ((i, p_i)) 连边,对于 (p) 中的所有环,在新图内从这个环的第 (i) 个点向第 (i+k) 个点连边,构成了 (p^k) 的图

结论2:令 (p) 中的某一个环环长为 (sz) ,则这个环在 (p^k) 中构成的环与 (p^{gcd(k, sz)}) 中构成的环元素相同

题目即为找一个 (k) 使得 (p^k) 存在一个颜色相同的环,由于结论2,对于 (p) 中的一个环,枚举 (sz) 的所有因数 (k) ,考虑这个环在 (p^k) 中的构成,判断是否满足条件,时间复杂度 (O(nsqrt n))

原文地址:https://www.cnblogs.com/Juanzhang/p/12651505.html