CF738 div2 VP
主要是 $\tt Alkaid$ 这个老哥要打。然后早上我在写题,写完了发现他还在搞 $C$。那就顺便打一下。
感觉上我的水平 $E$ 是做不出来的。
因为我一直在想质因数分解 $\dots$
$\tt A$
睿智题目,题目上说操作次数是无限的,所以最终答案每个数都能被 $&$ 一次。因为 $&$ 后的值不会变大,最终答案就是每个数 $&$。
$\tt B$
因为我比较懒直接一个 $dp$ 就搞完了。
设 $f(i, 0/1)$ 表示考虑到当前位,当前填 $R/B$ 的最小花费。
$\tt C$
最终答案肯定一一条链再到 $n + 1$ 再回来继续链。注意特判可以从 $n + 1$ 当做起点的情况。
$\tt D1$
猜测一下最终图肯定有一个是树。
如果说不是树,那么有两个联通块 $A, B$ 在一个图上不联通,在另一个图上联通。设其为 $C$。如果 $C, D$ 不联通,在另一个图上肯定 $C, D$ 联通。通过归纳法可以得到肯定有个图是树。
既然最终是树那么暴力枚举即可。
$\tt D2$
都说了是树,那么我们考虑对于集合的连边情况,如果说一个联通块无法连边,那么肯定是其所有节点都被限制了。
我们不妨考虑让所有联通块去连接一个超级原点。如果两个位置都能连接,那么可以直接加边。如果都不能连接就是本身在联通块上。如果一个位置能连一个位置不能,那么这两个位置就可以相互连边。
$E$
这里可能会想到分解质因数,但是为什么是错的,详情见下文题解。
如果不考虑 $\gcd$ 的限制的话,考虑使用背包。
$f(i, j)$ 表示考虑了前 $i$ 个数,和是 $j$ 的方案数。
$$
f(i, j) = \sum_{i = l_i} ^ {r_i} f(i - 1, j - i)
$$
复杂度是 $O(nm)$ 的。
然后考虑公约数的限制,直接考虑 $\gcd = 1$ 的情况是不好处理的。我们需要知道质因子,但是对于一个区间的情况显然是不可取的。
我们考虑使用容斥。设 $ans_i$ 为序列公约数恰好是 $i$ 的方案数。
那么我们对于 $f$ 进行转移的时候,需要注意保证公约数至少是 $\gcd$ 。然后进行容斥即可。
如果说公约数是 $\gcd$ 的话,我们考虑让所有数字都 $\div \gcd$ 也是成立的。之后直接进行上文的 $dp$ 即可。