• 题解 Codeforces Round #670 (Div. 2) (CF1406)


    A Subset Mex

    枚举第一个集合的( extbf{mex}),想办法让它合法,于是就可以算出第二个集合的( extbf{mex}),在两个都合法的情况下取它们和的最大值。

    B Maximum Product

    正数和负数分开算,枚举选多少个正数,如果最后乘积是正的就让选的数绝对值尽量大,否则让选的数绝对值尽量小。

    C Link Cut Centroids

    如果本来重心就唯一就随便找一条边把它砍了再加上,否则把其中一个重心子树里的某个叶子节点砍下来连在另一个重心上。

    D Three Sequences

    发现如果(a_i>a_{i-1}),那么(b_i=b_{i-1}+a_i-a_{i-1},c_i=c_{i-1}),否则(b_i=b_{i-1},c_i=c_{i-1}+a_i-a_{i-1})。我们假设(c_1=x),那么(b_1=a_1-x),很显然(b_n=b_1+sum_{i=2}^n max(0,a_i-a_{i-1}))。由于我们要求(min{max(b_n,c_1)}),令(sum_{i=2}^n max(0,a_i-a_{i-1})=s),那么(x=frac{a_1+s}{2})。由于每次修改只对(a_l-a_{l-1},a_{r+1}-a_r)有影响。直接维护(s)即可。

    E Deleting Numbers

    考虑把(10^5)以内的质数全部预处理出来(大概(9600)个),然后其实一个数(n)如果不是质数必然有(leq sqrt{n})的质因子,所以我们把质数分成(sqrt{9600} = 97)组,把每组里面的质因数(p)拿出来做(B)操作,如果返回值和应有值不一样,说明有(p)这个因子,于是就把(p^k)拿出来做(A)操作直到返回为(0),那么可以确定最终答案有(p^k)因子。一组质数处理完之后再问一遍(1)的倍数,这样可以找到第一个最小的质因子,再直接问其他的质因子的倍数就行了。

  • 相关阅读:
    μC/OS-III---I笔记10---内存管理
    μC/OS-III---I笔记9---任务等待多个内核对象和任务内建信号量与消息队列
    μC/OS-III---I笔记8---事件标志
    二.java下使用RabbitMQ实现hello world
    (转)rabbitMQ基础知识及命令语句
    一.windows环境下rabbitMQ的的安装和配置
    spring mvc对静态资源的访问
    2017年12月计划
    java两种动态代理方式的理解
    log4j配置文件详解(转)
  • 原文地址:https://www.cnblogs.com/Kylin-xy/p/tijie-CF1406.html
Copyright © 2020-2023  润新知