zoukankan      html  css  js  c++  java
  • Codeforces Round #514 (Div. 2)题解

    Codeforces Round #514 (Div. 2)题解

    A

    喵,直接模拟。

    B

    枚举所有盖章时的,合法的,左上角的位置。能盖的话就盖一下。最后check一下图案是否相等即可

    C

    • 一轮一轮的扔。
    • 如果(len geq 4), 扔掉(1,3,5,7....)的位置。
    • (len=3), 扔(2,1,3)
    • (len=2), 扔(1,2)
    • (len=1), 扔(1)

    为什么这样构造呢?因为(x,x+1)肯定是互质的,所以我们先扔掉所有奇数。这样我们才可以在((len+1)/2)轮后使得所有数字的(gcd),乘(2)

    D

    • 二分半径(r)
    • 那么,圆心一定在直线(y=r)上啦。
    • 对于每个点,圆心合法的位置是一个区间,判断区间交是否为空即可。
    • 为什么可以二分?因为(r)越大,每个(r)对应的合法区间就越长吖。

    E

    比赛的时候70分钟都没A掉。打得烂!

    • 我们先考虑一条链。对于每个点,维护它最远能往上跳多远,那么每个点都会对应着一个区间([l,r]),现在我们需要选择最少的区间使得整个链都被覆盖。这是很经典的贪心问题啦!
    • 这个题,无非是把链的问题放在了树上。考虑节点(u),我们用(dp[u])表示覆盖(u)的子树,最少需要几条路径,(low[u])表示,(u)的子树中,最高能跳到哪一层。

    转移:

    dp[u] = max{dp[v]}; low[u] = min{low[v]};
    if (low[u] > dep[u]) dp[u] ++, low[u]=up[u];
    
  • 相关阅读:
    编码问题
    僵尸进程与孤儿进程
    进程理论 阻塞非阻塞 同步异步 I/O操作
    浏览器上网流程以及套接字介绍
    OSI七层模型
    JsonResponse返回中文乱码问题
    查看源码所在位置
    linux ssh登录的小知识
    centos7安装python3.6
    Jquery的使用
  • 原文地址:https://www.cnblogs.com/RUSH-D-CAT/p/9752227.html
Copyright © 2011-2022 走看看