zoukankan      html  css  js  c++  java
  • CF1442

    CF1442

    A

    给定长度为 (n) 的数列 ({a}),你可以执行两个操作:

    • 选择一个前缀并减 (1)
    • 选择一个后缀并减 (1)

    你需要使得 (a) 变成 (0),判断能否完成。

    (nle 3cdot 10^4)

    Solution

    等价于将每个元素拆成两个部分 (p_i,q_i) 使得 (p_i+q_i=0)(p_i) 单调减,(q_i) 单调增。

    于是可以直接贪心,在保证 (q_i) 单调增的前提下尽可能的最大化 (p_i)(注意 (p_i) 应满足小于等于 (p_{i-1})


    B

    给定一个数列 (a),你可以执行以下操作:

    • 选择一个 (x) 然后将它左边或者右边的一个元素删除。(前提为有)

    将被每次被选择的元素记录下来,可以得到一个序列 (b),将每次被删除的元素记录下来,可以得到一个序列 (c),我们给定 (b)(a),你需要求有多少个序列 (c) 可以由给定 (a,b) 生成。

    答案对 (998244353) 取模。

    (nle 2cdot 10^5)

    Solution

    反向考虑操作,从后往前加入元素,不难看出来假设 (x) 被加入了,那么两端的可以被删除的一定还没有加入,答案就是两端还没被加入的元素数量和的乘积。

    同时这是充要的(可以手玩一下)。

    复杂度 (mathcal O(n))


    C

    给定一张有向图 (G),你需要从 (1) 走到 (n),每次你可以:

    • 经过一条边,花费 (1)
    • 反转一条边,假设这是当前翻转的第 (k) 条边,那么花费为 (2^{k-1})

    求最小花费,答案需要取模输出。

    Solution

    两遍最短路,先考虑分层图,计算从 (1 o x) 经过了 (k) 次翻转的最短路。

    显然 (k) 较大的时候答案只关乎 (k),维护一个双关键字的最短路即可。这里跑 Dij,复杂度 (mathcal O(nlog n))


    D

    给定 (n,k) 表示有 (n) 个数列,每个数列的元素都是单增的,你可以执行以下操作 (k) 次:

    • 选择一个非空数列的开头元素,然后获得其权值,删除其。

    求你能获得的最大权值。

    (n,kle 3000,sum |S|le 10^6)

    Solution

    观察:我们最后的选择方案中,不存在两个序列是部分被选择。

    因为这样调整为全选显然更优。

    于是只有一个序列是部分选择,考虑计算除去其之外,其余序列均全选/全不选的情况下的最优解。

    这玩意儿显然是一个 dp 模型,可以通过分治优化,复杂度为 (mathcal O(nklog n))


    E

    给定一棵树,点有黑色/白色/灰色三种颜色,每次你可以选择一个连通块然后选择一些点删除,删除这些点之后你会删除他们的出边。

    你不能在一次操作同时删除白色点和黑色点,求最小操作次数。

    (nle 2cdot 10^5),多组数据。

    Solution

    观察:删除某个灰色点一定是和某个黑色点/白色点一起删,此时可以确定它的颜色,问题等价于先给灰色点染色再求解答案。

    对于一棵仅由黑色/白色点构成的树,可以考虑将黑色连通块和白色连通块缩起来,此时考虑这棵黑/白相见的树,其答案不超过当前深度。

    同时,任意的根节点都可以导致不同的答案,显然根节点取直径中点时最优,为 (frac{直径}{2}+1)(当然我并不会证这个是下界,这是猜的)

    于是只需要计算给灰色点染色后的直径长度的最小值。

    观察:灰色点对答案没有影响。

    根据转换,灰色点会使得答案更劣,但是显然灰色点不会使得答案更劣,所以灰色点没有影响。(但是灰色点可以使得图的结构改变,类似于虚点的感觉)

    例外:所有点都是灰色点。

    但是答案加了 (1) 刚好判掉了。。。

    • 话说我发现灰色点这个 detail 处理起来挺恶心的...

    F

    咕咕咕。

  • 相关阅读:
    「读书感悟」三体
    「PLC」PLC基本编程
    利用一个Demo说明Castle+NHibernate的实现
    采用jquery实现简单的计算器
    Html+css+Jquery模拟电影院购票
    Jquery实现简单的导航单并且经常使用
    H5的video元素实现的Demo
    JQuery编写的定时器实现时钟
    Castle.net
    1056. 组合数的和(15)
  • 原文地址:https://www.cnblogs.com/Soulist/p/13924183.html
Copyright © 2011-2022 走看看