zoukankan      html  css  js  c++  java
  • Gym102028L

    这题跟上一题比较相似,但是这题更难。

    就是连通的边四元组计数。枚举一下容易得知,只有五元链、菊花、四元环、四元链的第二个点旁生枝干、三元环旁生枝干这五种。考虑分别计数,分别记为 A1, A2, A3, A4, A5。

    A3 就是个四元环板子,直接数掉完事。A5 可以枚举三元环,每个 A5 显然对应唯一一个三元环,而一个三元环对应 (x+y+z-6) 个 A5,其中 (x,y,z) 是三个点度数。A2 很简单,就 (sumdbinom{mathrm{deg}_i}4)

    考虑 A4 和 A2。对于 A4,考虑枚举度数为 (2) 的那个点 (x)。那么看上去应该枚举儿子 (y) 作为三度点,那么贡献就是 (sumlimits_y(deg_x-1)dbinom{deg_y-1}2)。殊不知,没有考虑三度点的儿子有可能与 (x) 的一度儿子重合。那么按照计数技巧,不需要直接硬求真正的 A4,既然我们已经找到这么个方法求 A4 加上不算的部分,那么如果不算的部分好求的话,A4 也就求出来了。于是考虑不算的部分长啥样,由于三度点的两个儿子不同,所以只有一个和 (x) 的一度儿子重合,那想象一下这就是个 A5。那么就简简单单地把 A5 减掉吗?殊不知每种 A5 在三元环的两个两度点被当作 (x) 的时候被统计了两次,所以应该减掉两倍的 A5。

    事实上这种类似先求混合计数,然后除杂的方法,除杂本质上应当枚举任意形态的杂质,然后分析它被统计了几次然后减掉。但是「枚举任意形态的杂质」是不可能做到的,我们只能通过求混合计数的求法分析出有哪些有限的杂质形态,然后再对它们搞。这一步正向的分析仅仅起到缩小杂质形态范围的作用,无法定量,因为正向分析只能建立混合物到杂质的对应关系,不清楚对面映射过来是什么局势。

    然后考虑 A1。考虑枚举中点,那么设儿子序列为 (x),那么贡献显然想到这样一个式子:(sumlimits_{i<j}(deg_{x_i}-1)(deg_{x_j}-1))。但这个有杂质更为严重了。依然是点可能重合的问题:考虑先把儿子 (x_i) 给拉直,然后看 (x_j) 及其儿子往左边的重合情况。讨论一下整理出有哪些可能的杂质:

    1. (x_j) 直接跟 (x_i) 儿子重合了。
      1. (x_j) 儿子跟 (x_i) 重合,形成一个三元环;
      2. (x_j) 儿子挂下来,形成一个 A5;
    2. (x_j) 不跟人重合。
      1. (x_j) 儿子跟 (x_i) 重合,那就是个 A5;
      2. (x_j) 儿子跟 (x_i) 儿子重合,那就是一个 A3。

    分析下来只可能形成三元环(还要额外算三元环吗?可以在算 A5 的时候顺带)、A5、A3 三种杂质。稍微想一下,一个三元环以三个顶点为中点被统计了三次;A5 只可能在两个两度点上被统计两次;A3 被统计四次的事实太显然了。

    但是注意到 (1.2,2.1) 提供了两次 A5,每次都看上去都会算两次,那为什么不是四次呢?因为这样考虑的话,前者只可能是三度点和中点距离为二的时候发生,后者距离是一,两者矛盾,不可能同时发生。这再一次说明了用正向分析出杂质种类集合的方法来定量是不可取的。

    code(里面包含了四元环计数的代码哦。)

    珍爱生命,远离抄袭!
  • 相关阅读:
    JUnit测试类完成后事务是默认 回滚的。只能查询数据,不能增删改。
    linux每日命令(28):chgrp命令
    linux每日命令(27):chmod命令
    linux每日命令(26):Linux文件属性详解
    linux每日命令(25):Linux文件类型与扩展名
    linux每日命令(24):Linux 目录结构
    linux每日命令(23):find命令之xargs
    linux每日命令(22):find命令参数详解
    linux每日命令(21):find命令之exec
    linux每日命令(20):find命令概览
  • 原文地址:https://www.cnblogs.com/ycx-akioi/p/solution-gym102028l.html
Copyright © 2011-2022 走看看