个人思路:

一棵树也只有一个 \(a=-1\) 的点,所以可以把它看做一个点,但是要记录点的大小 \(sz_i\),即为这棵树的大小。如果本来就是一个点,那么大小为 \(1\)。

状态:\(dp_{i,j}\) 表示前 \(i\) 个点已确定,已产生 \(j\) 个连通块的方案数。

转移:\(dp_{i,j} = dp_{i-1,j-1} \times sz_i + dp{i-1,j} \times (n-sz_i)\)。

这个状态如果选择了后面的点,会直接影响后面的点的大小,不可做。

然后就不会了。

正解:

设 \(a=-1\) 的点共有 \(m\) 个。

\(k\) 个点 \(x_1,x_2,\dots ,x_k\) 构成一个环,有 \((k-1)! \times \prod\limits_{i=1}^k sz_{x_i}\) 种方案数,因为每个点下一个连接的点形成的排列有 \((k-1)!\) 种,而每个点中有 \(sz_i\) 种选择。

剩下的随便选,每种环在所有方案中出现了 \(n^{m-k}\) 次。那么这 \(k\) 个点构成的环对答案的贡献为 \((k-1)! \times \prod\limits_{i=1}^k sz_{x_i} \times n^{m-k}\)。

显然,我们可以把任选 \(k\) 个点的 \(sz_i\) 乘积之和算出来,可以 \(\Theta(n^2)\) 递推,具体看代码。

[ARC140D] One to One的更多相关文章

随机推荐

  1. iOS中的三种定时器

    iOS中的三种定时器 NSTimer 一.背景 定时器是iOS开发中经常使用的,但是使用不慎会造成内存泄露,因为NSTimer没有释放,控制器析构函数dealloc也没有调用,造成内存泄露. 二.使用 ...

  2. JavaSE——遍历字符串与统计字符个数

    package com.zhao.stringtest; import java.util.Scanner; public class test2 { //键盘录入一个字符串,统计该字符串中大写字母, ...

  3. 分析网络工具 Wireshark与tcpdump

    一.安装使用 1. 安装 2. 选择网卡:我们的主机就是通过其中一块网卡和其他主机进行数据交互: 3. 点击开始:打开wireshark,点击左上角那个蓝色的鲨鱼鳍按钮,开始捕获新的分组并清空之前的分 ...

  4. 《CSOL大灾变》Mobile移植记录——购买区域

    在CSOL大灾变模式中,购买武器只能出现在特定区域,如下:    这里可以通过添加一些不渲染的BOX(如图中的蓝色BOX)作为触发器,然后检测玩家与之触发后才能弹出购买菜单. 在JmonkeyEngi ...

  5. PageHelper大致逻辑

    简单涉及以下几个类: PageHelper   PageMethod  PageParam PageInterceptor  implement Interceptor PageHelperAutoC ...

  6. Supervisor进程守护监控部署

    前言:Supervisor在百度百科上给的定义是超级用户,监管员.Supervisor是一个进程管理工具, 当进程中断的时候Supervisor能自动重新启动该进程.可以运行在各类Unix机器上,su ...

  7. 关于ie浏览器query ajax提交单个操作无效

    第一次写博客 大家不要喷我!!!! 需求需要开发一个无刷新的用户注销和恢复注销功能 遇到的实际问题直接贴图----> 这是开始页面 当点击红xx时提示修改成功 这里似乎是对的哈 但是等点击刷新的 ...

  8. pip国内镜像永久

    一.Windows下永久设置pip镜像使用:# windows系统使用cmd(最好使用管理员权限运行)快速设置 pip install pip -U # 升级pip到最新版本 pip config s ...

  9. com.mysql.cj.jdbc.exceptions.CommunicationsException

    mysql数据库链接空闲一段时间后就会关闭连接,但是我们的java程序依然持有该连接的引用,对已经关闭的数据库连接进行操作就会引发上述异常. 解决办法: 1.增大mysql数据库的wait_timeo ...

  10. flutter 多种情况tabbar高度问题,普通使用和嵌套使用高度问题(Tab)。

    众所周知tabbar的高度是不可改变的.比如我们普通的写一个tabbar. 先上效果图: 代码: Scaffold( appBar: AppBar( title: Text("TabBarD ...