zoukankan      html  css  js  c++  java
  • CF 521 题解

    A

    我们固定 (s) ,循环位移所有 (t),发现答案就是相同的字母对数。

    而循环位移 (s) 是本质不变的,所以答案乘个 (n) 就好了。

    所以你构造的串中每个字母都要保证是 (s) 中出现次数最大的,设这样的字母有 (c) 个,答案显然是 (n^c)

    B

    从高到低位贪心一定是最优的。

    对于每个点,我们可以通过判断周围点是否存在来确定这个点是否可以取走,每次取走能取的最大/最小后更新周围的点即可。

    C

    考虑每个数的贡献。枚举这个数下一个加号在哪里(我们这里没有计算 (j=n) 的情况,因为可以 (O(n)) 简单计算。)

    [egin{aligned} &sum_{i=1}^n a_isum_{j=i}^{n-1} 10^{j-i}inom{n-j+i-2}{k-1}\ &= sum_{i=1}^n frac{a_i}{10^i}sum_{j=0}^{n-1-i} inom{n-j-2}{k-1} 10^{j+i}\ &= sum_{i=1}^n a_isum_{j=0}^{n-i-1}inom {n-j-2}{k-1}10^j end{aligned} ]

    处理 (sum_{i=0}^x inom {n-x-2}{k-1}10^j)

    D

    一定是先赋值,再加法,再乘法。考虑将所有操作都转化为乘法,然后贪心即可。

    E

    观察一下三条不交路径,一定形成了两个相交的环。

    对于这种问题我们考虑它的反面:如果不存在解一定是不存在两个相交的环,也就是每一个边至多出现于一个环上,也就是个边仙人掌。

    判断边仙人掌可以树上差分,然后只需要按照构造找出来一对路径 ((u_1,v_1))((u_2,v_2)) 满足有交,设 (dep_{u_1} < dep_{v_1},dep_{u_2} < dep_{v_2}),如下图:

    虚边是非树边

    其中 (lca = lca(v_1,v_2)),设那个没有标记的点是 (x),我们可以构造三条 ( ext{lca} o x) 的路径:分别是 ( ext{lca} o x)( ext{lca} o v_1 o u_1 o x)( ext{lca} o v_2 o u_2 o x)

  • 相关阅读:
    搭建高可用mongodb集群—— 副本集
    搭建高可用mongodb集群(一)——mongodb配置主从模式
    单线程异步回调机制的缺陷与node的解决方案
    js实现接口的几种方式
    访问者模式和php实现
    策略模式和php实现
    状态模式和php实现
    观察者模式和php实现
    C语言之一般树
    电子相册之bitmap
  • 原文地址:https://www.cnblogs.com/rainair/p/14305851.html
Copyright © 2011-2022 走看看