zoukankan      html  css  js  c++  java
  • 题解 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)的倍数,这样可以找到第一个最小的质因子,再直接问其他的质因子的倍数就行了。

  • 相关阅读:
    table拖动列宽
    解决 wm_concat函数 长度不够问题
    「Luogu」[JSOI2007]字符加密 解题报告
    Markdown数学符号
    「P5004」专心OI
    「CF242E」XOR on Segment 解题报告
    「CF86D」Powerful array 解题报告
    「USACO08JAN」电话线Telephone Lines 解题报告
    「Luogu P2015」二叉苹果树 解题报告
    「Luogu P3866」[TJOI2009]战争游戏 解题报告
  • 原文地址:https://www.cnblogs.com/Kylin-xy/p/tijie-CF1406.html
Copyright © 2011-2022 走看看