zoukankan      html  css  js  c++  java
  • 2018 牛客多校 3

    Problem A

    DP,输出路径的时候减下去就可以了。

     

    Problem B

    如果一个点度数 $<= 2$,那么这个点肯定会被删掉。

    考虑每个度数 $>=  3$的点为根并且不选这个根的情形,假设这个点有$sz$个儿子。

    如果我在$sz$个分支里面只有 $<= 2$个分支里面的点被选择了。

    那么首先其他子树肯定会被删光,然后剩下这两个子树。

    到最后这个点肯定会被删除(纸上画一下很明白的)

    所以这个点对答案的贡献为

    $all - $只选一个子树里面的点方案数 - 只选两个子树里面的点的方案数

    那么枚举哪两个子树被选定再减去就可以了。

    但是这个减的过程,每个只选一个子树里面的点方案数都被重复减去了$sz - 1$次

    所以得加回来。

    然后答案还得减去只选一个子树里面的点方案数。

    所以加回来的时候加上$sz - 2$倍的只选一个子树里面的点方案数就可以了。

     

    Problem C

    $splay$一波带走,$rope$应该也行。

     

    Problem D

    先解密下,把真正要处理的两个字符串弄出来。

    然后这个其实相当于求字符串匹配的变种。

    如果两个字符串(长度相等)能够匹配,

    那么必须满足

    $(a_{i} - a_{j})^{2} * ((a_{i} - a_{j})^{2} - 1) = 0$

    $(a_{i} - a_{j})^{4} - (a_{i} - a_{j})^{2} = 0$

    $a_{i}^{4} - 4a_{i}^{3}b_{i} + 6a_{i}^{2}b_{i}^{2} - 4a_{i}b_{i}^{3} + b_{i}^{4} - a_{i}^{2} + 2a_{i}b_{i} - b_{i}^{2} = 0$

    那么做$4$次NTT再把剩下的一些无需卷积求的项加起来就可以了。

    如果结果等于$0$那么这个位置就可以匹配。

     

    Problem E

    直接哈希一波带走

     

    Problem F

    如果子串和为$0$那么返回$0$,是$15$的倍数(大于$0$)则返回$15$。

    否则返回对$15$取模的余数

    搞出那个结论之后就是线段树的常规操作。

    时间复杂度$O(nlogn * 16 * 16)$

    (如果没有更新复杂度应该可以减少一个$16$?)

     

    Problem G

    令$f(x)$表示距离最小距离至少为$x$的方案数,那么答案为$f(x) - f(x + 1)$

    考虑一条链的情况,如果一个点跟前面$x$个颜色都不能相同,

    那么这个点的选择有$all - x$种。

    然后树上的情况其实也差不多,那么用广度优先搜索标记类比链上染色的过程,

    然后判断有多少个点不能跟当前点颜色重复即可。

    时间复杂度$O(n^2)$

     

    Problem H

    签到题吧

    Problem I

    Problem J

     

  • 相关阅读:
    Mysql 配置主从
    ZJ 虚拟机扩直接扩原磁盘
    Linux 配置samba
    mysql 5.6 升级5.7
    binlog作用
    删除全部binlog不影响数据库运行,类似Oracle的archivelog
    mysql清理binlog
    Perl计数器
    perl增量分析日志
    perl 获取更新部分日志
  • 原文地址:https://www.cnblogs.com/cxhscst2/p/9385357.html
Copyright © 2011-2022 走看看