• 2019牛客暑期多校训练营(第六场)


    2019牛客暑期多校训练营(第六场)


    A.Garbage Classification

    solved by F0_0H 20min

    签到


    B.Shorten IPv6 Address

    solved by F0_0H 200min -4

    题意 自己读

    做法

    • 本也是一道签到题,但被治了
    • 需要特殊考虑的情况是,当连续零在开头或结尾时是要比在中间消去的字符少1的

    复盘 倒地后的受身操作就是个憨憨。WA了第一发后,不仔细考虑逻辑上的漏洞,一直盯着代码细节看,导致耽误了不少时间。rdc 重写的那发简直是葫芦娃救爷爷操作。


    D. Move

    solved by rdc 280min -16 【憨憨】

    题意 用容量为最小的 (k) 个包,装下所有物品。

    做法 答案的下界为 (max(mxval,frac{sum}{k})),从下界从小到大 check 答案,上界不会超过下界加 (mxval),因为如果让每个包恰好能多装出一个物品,那么每个包装下的物品容量上限都大于等于 (frac{sum}{k})
    复杂度 (O(nmlogn))

    做法2 容积对 (x,x+mxval,x+2mxval,......) 满足二分单调性。

    复盘

    • 第一反应二分。
    • 看见大家都在解体了,开始怀疑二分的单调性是否成立。
    • 开始乱搞。
      • 从小到大增加容量。每次增加极小的使得物品归属发生改变的容量。
      • 从二分算出的答案往下缩。
      • 递归式二分。
      • 这些做法一一解体。
    • 确定出一个显然下界,猜测了一下正确答案不会比下界大太多,虽然没有想怎么证明,但写了写还是苟住了这道题。

    E. Androgynos

    solved by rdc 190min -1

    题意 构造一个 n 个点的图,与其补图同构。

    一道风格有点像 Atcoder 的构造。

    做法

    • (n)(4k+2,4k+3) 一定解体。
    • 冷静分析 (n=4) 的 case,然后就发现自己无敌了,因为对于 (n=4k),可以分成四个等大的 group。
    • (n=4k+1) ? 新增的这个点,向两个 group 连边即可。

    F.K-ary Heap

    upsolved

    题意 给定一个K叉堆,求其排名

    做法

    • 预处理F[i], 表示以i为根的子树的方案数
    • ans = 总方案 - 比输入大的序列
    • 枚举第一个比当前序列大的位置,然后找出所有闲置的子树,按照其父亲权值从大到小考虑,依次选择一些空闲的数填进去排列组合一下即可(当前枚举的位置也是一个闲置的子树,其排序权值为自身,而不是其父亲,这正是枚举比当前大的序列的原因)

    H. Train Driver

    upsolved

    题意 随机三个点,找一个点使得三个点到该点距离和最近,求最近距离的期望。

    做法

    • 枚举前两个点 (u,v)
    • 建炒鸡源点,向 (x) 连边权为 (dis(x,u)+dis(x,v)) 的边。
    • SSSP 即可。
    • 当然不能 dijkstra,会解体,我们可以拿着普通队列假装当做优先队列使用。
    • PS BFS 时传数组引用会比传一个高维数组,前x维快不少。

    复盘

    • 三个点都确定了,是个经典问题。以这三个点为源点跑 BFS 即可,三个点的 dis 和取极小即可。
    • 前两点范围小,枚举前两个点 (u,v) 对点 (x) 计算 (dis(u,x)+dis(v,x)) 的值。
    • 第三个点怎么办呢?比赛时在这停滞不前了。
      • 没法枚举第三个点。
      • 建源点,最短路,这个想法一闪而过,可惜没抓住。

    I. Can They Go to Galar?

    题意

    口胡

    • 期望线性可加性。
    • 考虑一棵树怎么做,(p_v=p_ue_{uv})
    • 仙人掌的每个点双连通分量是个点,或者是个简单环。
    • 拿出点双可以 Tarjan,也可以做 DFS 生成树,用每条回边生成一个环。
    • 先计算 1 号点所在点双里,各点出现的概率,以此 BFS。

    J. Upgrading Technology

    solved by rdc 40min -1

    题意 升级技能,升级有损耗,所有技能等级都大于等于 x 时有收益,收益损耗都可正可负。

    做法 枚举技能等级的下界,枚举哪个技能取到下界,对剩下的技能预处理前缀和后缀和。

  • 相关阅读:
    java网络爬虫爬虫小栗子
    浮点数精确表示
    使用yum安装CDH Hadoop集群
    判断奇数,java陷阱
    Long型整数,缄默溢出
    java基础知识点
    java常用指令
    Codeforces Round #275 (Div. 2) D
    区间dp的感悟
    Codeforces Round #386 (Div. 2) C D E G
  • 原文地址:https://www.cnblogs.com/FST-stay-night/p/11295696.html
Copyright © 2020-2023  润新知