zoukankan      html  css  js  c++  java
  • 口胡题集

    AFO在即的年迈的(Mychael)由于体力懒惰原因,对于部分懒得动手的题目,就堆砌在这里啦
    省一点精力与时间


    hdu5896&5552
    就是要求(n)个点带环无向图个数
    补集转化,用无向图总数减去森林个数
    无向图总数是(2^{{n choose 2}})很好办
    森林总数显然就要(dp)
    (f[i])(i)个点森林的个数
    枚举(1)号点所在树的大小,又由于(n)个点的树有(n^{n - 2})
    所以

    [egin{aligned} f[i] &= sumlimits_{i = 1}^{n} {n - 1 choose i - 1} i^{i - 2} f[n - i] \ &= (n - 1)! sumlimits_{i = 1}^{n} frac{i^{i - 2}}{(i - 1)!} imes frac{f[n - i]}{(n - i)!} end{aligned} ]

    分治(NTT)即可


    CF932E Team Work
    和BZOJ5093是一样的
    利用(n^k = sumlimits_{i = 0}^{n}egin{Bmatrix} k \ i end{Bmatrix} {n choose i}i!)化式子
    最后预处理出第二类斯特林数即可
    什么?你问这个式子怎么来的?
    考虑(k)个位置涂(n)种颜色的方案为(n^k)
    我们枚举涂了几种颜色,即可得出右式
    题解


    BZOJ4754
    由这题听说了一种树(hash)的方式
    对于一个节点,将其子树递归求出(hash)值,然后将(hash)值排序,作为该根节点的(hash)元素再求一次(hash),同时也要加入根节点的(hash)值【每个节点(hash)值相同】
    对于一棵树,我们企图对所有节点为根求出(hash)
    我们只需对任意节点为根求一次(hash)值,剩余的点可以(O(1))求出
    对于该点相邻的节点,我们找到该点向根求(hash)时到该点时的(hash)值,再结合最终的(hash)值可以计算出去掉该子树后的(hash)值,从而实现根的转移

    对于这题,只需求出以(B)每个叶子为根的(hash)值,对于同一个(hash)值选择编号小的叶子记录,然后求出(A)每个节点为根的(hash)值,再向上接一个节点求出新的(hash)值,再从(B)中查表更新答案
    复杂度是加上排序的(O(nlogn))
    感觉以后有必要实现一下


    BZOJ4386
    数据巨小,而是有向图路径计数,可以想到邻接矩阵的次幂
    二分一下答案,我们需要求的是小于等于某个值的路径数
    如果只考虑(1)的边,我们新加一个点作为计数器,所有点向它连边,它连自环
    如果加入(2)(3)的边,就拆点,每个点拆出(2)(3)对应的点
    复杂度(O((3n)^3logK))

  • 相关阅读:
    详解机器学习中的熵、条件熵、相对熵、交叉熵
    使用Keras进行深度学习:(三)使用text-CNN处理自然语言(上)
    粒子群优化算法(PSO)之基于离散化的特征选择(FS)(一)
    DNN模型训练词向量原理
    TensorFlow 实战卷积神经网络之 LeNet
    五大经典卷积神经网络介绍:LeNet / AlexNet / GoogLeNet / VGGNet/ ResNet
    Oracle 查询版本号
    C# 递归获取 文件夹的 所有文件
    SQL Server 常用语句
    Oracle 导入大量数据
  • 原文地址:https://www.cnblogs.com/Mychael/p/9184678.html
Copyright © 2011-2022 走看看