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

    solved: 4/8

    D:

      根据$dis[p[i]]\leq dis[p[i+1]]$和$dis[fa[x]]\leq dis[x]$

      构造$dis[p[i]]=i$, 然后判断一下是否满足上面的式子即可

    E1:

      对每个点维护, 到最近的friend的距离, 到根节点的距离, 然后如果firend比I更快到的话, 那么这个点是不能走的

      然后看一下, 有没有一条通往叶子的路径即可

    E2:

      跟上一题一样, 不一样的是, 对于一条路径上的点, 我们只需要封掉最上面的那个点, 对于一个点, 我们只需要离他最近的那个friend来封掉他

      那么用ans[x]表示让x没路径需要多少个friend, $ans[x]=\sum ans[son[x]]$

      对于封掉的点, 答案为1

      如果上一题有路径, 那么就是-1, 否则就看一下ans[1]是多少

    F:

      双指针板子


    补题: 4/4

    A:

      答案只有0 1 2, 原本就是偶数是0, 开头是偶数是1, 然后判断一下数字中有没有偶数, 有就是2, 没有就是-1

    B:

      答案是$min{a, b, \frac{a+b}{4}}$

      假设a<b, 那么我们可以这么分组n(2, 2)+m(1, 3)

      可以发现怎么分组是没有影响的, 实际上就是+1-1的区别a多派1人, b少派一人

      所以理想中的情况肯定可以分出$\frac{a+b}{4}$

      但是组别又受限于a, 因为最多a(1, 3)

    C:

      观察游戏规则可以发现, 最大的肯定在头或者尾

      所以反着来, 把除了最大的一段翻转一下, 那一段肯定是从头到尾取的

    G:

      我们沿着副对角线从左往右扫, 他们所在的主对角线是j-i, 从上到下是递减的

      考虑两条副对角线的关系, 一个点(x, y)能被之前的机器人(a, b)清掉, 当且仅当y-x<=b-a

      只有满足这个条件, 机器人才能从前面那条副对角线, 通过他的主对角线走到当前点的主对角线上

      然后就变成了导弹拦截系统的问题, 贪心的取最小的一个恰好能清掉自己的机器人, 让他把自己清掉

      如果找不到, 那么肯定得多加一条路径

  • 相关阅读:
    atom编辑器中编辑C代码调用printf函数打印中文字符出现乱码
    C 库函数
    函数原型、函数声明和函数定义之间关系
    函数指针
    const 类型限定符
    AttributeError: 'str' object has no attribute '__buffer__'
    python3继承中发生的显式覆盖
    python3中的隐式继承
    黑科技
    理解jquery的$.extend()、$.fn和$.fn.extend()
  • 原文地址:https://www.cnblogs.com/gllonkxc/p/15609203.html
Copyright © 2011-2022 走看看