CF1394(div1)

差 1E,看上去太仙了 (3500) 就咕了。

A

sb 题


B

  • 给定一个 \(n\) 个点 \(m\) 条边的有向图,每个点的出度最多为 \(k\),每条边有个 \(1\sim m\) 范围内的权值。

  • 求有多少长度为 \(k\) 的序列 \(c\) 满足如下约束:

  • \(1\le c_i\le i\)

  • 对于度数为 \(i\) 的点,保留出边权值第 \(c_i\) 小的边,这张图会构成若干个环。

  • \(n,m\le 2\times 10^5,1\le k\le 9\)

\(\rm Sol:\)

每个点的出度都是 \(1\),所以入度也都是 \(1\),所以判定条件是这个。

对于 \(k=1\sim 9\),每个点的选择只有 \(i\),所以枚举会有一个 \(\mathcal O(9!)\)

但是 check 是 \(\mathcal O(n)\) 的。

考虑优化 check,发现假设 \(c_i\) 选了 \(j\) 那么 \(c_k\) 不能选 \(k\) 之类的互斥关系可以预处理。

复杂度为 \(\mathcal O(k!\times k^2+nk^2)\)


C

对于一个 \(01\) 串 S 你可以执行以下操作:

  1. 删除其中任意一个字符。
  2. 删除一个 01,10 类型的子串。
  3. 在结尾添加 0/1
  4. 在结尾添加 01/10

对于两个字符串 \(s,t\),定义其相似当且仅当每种字符的出现次数相同。

定义 \(\textrm{dist}(s,t)\) 为最小的操作次数使得 \(s\)\(t\) 相同,每次操作可以对 \(t\)\(s\) 进行操作。

给定 \(n\) 个字符串 \(s_{1,2...n}\),求一个字符串 \(t\) 使得 \(\max_{1\le i\le n}(\textrm{dist}(s_i,t))\) 最小,输出最小值和字符串。

Solution

首先操作是对称的,所以 12 类操作无效。可以只考虑 3,4 类操作。

每个 01 串可以被 0 的数量和 1 的数量两个维度描述 \((a,b)\),每次操作为给 \(a+1\) 或者 \(b+1\) 或者 \(a,b\) 同时加 \(1\),或者给 \(a-1\)\(b-1\)\(a,b\) 同时减 \(1\)

  • 请注意从绝对值来描述答案是有问题的。

不难想到二分,此时等价于 \((a,b)\) 可以遍历到所有点。

操作次数的上界是 \(2n\) 的级别。只需要考虑 \((a,b)\)\(k\) 次操作内可以到达所有点。

等价于每个点可以到达的点的交集。

于是只需要判定所有点形成的区域是否有交即可。

复杂度 \(\mathcal O(n\log n)\)

具体判定为,答案只关乎于差值的绝对值:

\((a,b)\) 均为正的时候答案为 \(\max(a,b)\),均为负同理。

一正一负的时候为 \(|a|+|b|\)

很容易得到每个点可以到达的点的区域,对每个区域列一个不等式,于是这个题就做完了。


D

给定 \(n\) 个节点的树,每个点有点权 \(v_i\),有高度 \(h_i\)

将原树的所有边划分成若干条链,使得每条链的高度递增,最小化所有链的点权和。

\(h_i,w_i\in[1,10^6],n\le 2\times 10^5\)

Solution

对于边 \(u,v\) 假设 \(h_u\ne h_v\),那么这条边的方向确定。

一个点对答案的贡献是经过他的链数,设 \(a\) 为指向它的边的数量,\(b\) 为指出去的边的数量,那么不难发现其贡献为 \(w_i\times \max\{a,b\}\)

问题等价于你需要给高度相等的链确定方向最小化贡献和。

\(f_{u,0/1}\) 分别表示以 \(u\) 为根的子树,\(u\) 到父亲的边强制为连入/连出情况下的贡献和。

更具体的,问题变成给定 \(m\) 个二元组 \((f_{v,0},f_{v,1})\) 给每个二元组选择一个权值,然后设 \(a,b\) 分别为 \(0/1\) 的数量,\(k=\max(a,b)\) 贡献为权值和加上 \(k\times w_i\)(当然部分是固定的,但是处理起来也很简单)

可以先假设所有元素选 \(0\),然后依次枚举 \(1\) 的数量,不难发现我们肯定优先选 \(f_{v,1}-f_{v,0}\) 尽可能小的元素。

然后即时更新一下贡献,特判一下 \(1\) 号节点,这个题就做完了。

复杂度是 \(\mathcal O(\sum \deg(i) \log)\) 大约是 \(\mathcal O(n\log n)\)

感觉评分偏高。。

posted @ 2020-09-09 19:09  Soulist  阅读(162)  评论(0编辑  收藏  举报