zoukankan      html  css  js  c++  java
  • Codeforces Round #629 (Div. 3)

    Codeforces Round #629 (Div. 3)

    这场小错好多啊,自闭了。

    (A. Divisibility Problem)

    答案显然是 (b-a\%b) 。特别的,如果算出来是 (b) ,输出 (0)

    code

    (B. K-th Beautiful String)

    考虑从后往前枚举前一个 (b) 的位置即可。

    code

    (C. Ternary XOR)

    从前往后看,第一个 (1) 之前,平分到 (a,b) 里面。

    第一个 (1) 分给 (a) ,剩余部分分给 (b)

    code

    (D. Carousel)

    分类讨论。

    (n) 是偶数

    我们 (1,2) 交替填,一定不会有不合法的情况。

    (n) 是奇数

    分两种情况。

    1. 存在两个相邻的相同,那么,这两个都填 (1) ,剩余的 (1,2) 交替。
    2. 选一个填 (3) ,剩余的 (1,2) 交替。

    code

    (E. Tree Queries)

    显然,若存在一条路径满足条件, 我们一定可以把终点放在该询问中深度最大的点上。

    找出深度最大的点 (v) ,然后我们只需要对剩下的点 (u_i)(v)(lca) ,判断 (dis(u_i,lca)leq 1) 即可。

    code

    (F. Make k Equal)

    考虑枚举最终得到的值 (val) 。显然 (val) 一定在数组中出现过。

    注意到每次只能改最大最小,所以我们一定是把所有小于 (val) 的先改到 (val-1) ,所有大于 (val) 的改到 (val+1) ,然后再进行接下来的动作。

    设数组中 (val) 的个数为 (num) ,调整小于 (val) 的数需要 (cost1) 步,调整大于 (val) 的数需要 (cost2) 步。

    (numgeq k) ,那么答案等于 (0)

    若小于 (val) 的数不少于 (k-num) ,答案为 (cost1+k-num)

    若大于 (val) 的数不少于 (k-num) ,答案为 (cost2+k-num)

    若两边都不够,答案为 (cost1+cost2+k-num)

    对所有的答案取一个 (min) 就是最后的答案。

    code

  • 相关阅读:
    推荐给新手gopher的一些书籍
    flask中路由处理
    flask中间件之请求扩展
    Chrome调试技巧
    iconfont 使用
    @font-face 使用过程
    SEO
    数据结构与算法2-4 队列
    数据结构与算法2-4 堆栈链式存储
    软件推荐--Sublime Text3常用快捷键查询(不断更新ing)
  • 原文地址:https://www.cnblogs.com/TheShadow/p/12579929.html
Copyright © 2011-2022 走看看