WC2019
好题啊!
数树
- \(\text{opt = 0, 6 pts.}\)
显然答案为 \(y^{n-|E_1∩E_2|}\) 。
- \(\text{opt = 1, 47 pts.}\)
\]
考虑该容斥式:\(f(S)=\sum\limits_{T\subset S}\sum\limits_{P\subset T}(-1)^{|T|-|P|}f(P)\) ,则:
\]
令 \(g(T)\) 表示包含 \(T\) 的 \(E_2\) 个数。
\]
\]
\]
\]
考虑一个定理:给定 \(n\) 个点的森林,有 \(k\) 个连通分量,第 \(i\) 个连通分量的大小为 \(a_i\) ,则由 \(\text{prufer}\) 序列得:生成树的个数为 \(n^{k-2}\prod\limits_{i=1}^{k}a_i\) 。
代回原式,记 \(k=n-|T|\) ,表示连通分量个数:
\]
\]
发现一个大小为 \(a_i\) 的连通分量对答案的贡献为 \(Ka_i\) ,其中 \(K=\frac{ny}{1-y}\) 为一个常量。
考虑贡献的组合意义,大小为 \(a_i\) 的连通分量贡献相当于在这个连通分量重选取一个点,产生 \(K\) 的乘积贡献。
据此,可进行 \(dp\) :\(\mathrm{f[u][0/1]}\) 表示在 \(u\) 的子树中,当前连通分量是否已经做出贡献的答案。这里为了方便转移,当前连通分量若已做出贡献,就计入答案。
int f[N][2], K;
void dfs(int u, int fa) {
f[u][0] = 1, f[u][1] = K;
for (auto v: adj[u]) {
if (v == fa) continue;
dfs(v, u);
f[u][1] = (1ll * f[u][0] * f[v][1] + 1ll * f[u][1] * f[v][0] + 1ll * f[u][1] * f[v][1]) % mod;
f[u][0] = (1ll * f[u][0] * f[v][0] + 1ll * f[u][0] * f[v][1]) % mod;
}
}
- \(\text{opt = 2, 47 pts.}\)
\]
\]
这一段类似 \(\text{opt = 2}\) ,直接快进:
\]
}^{k}a_i^2\]
\]
换个角度考虑,每个连通分量是无序的,相当于有 \(n\) 个有标号小球扔进 \(k\) 个无标号盒子,盒子不为空。
对于一个装有 \(a\) 个球的盒子,一个生成树对其贡献为 \(\frac{n^2y}{1-y}a^2\) 作为乘积,有 \(a^{a-2}\) 个生成树,因此总乘积贡献为 \(\frac{n^2y}{1-y}a^a\) 。
显然,总方案的 \(EGF\) 等于 \(exp\) 单个盒子的 \(EGF\) ,即:
\]
\]
答案即为:
\]
套多项式 \(exp\) 即可。
时间复杂度 \(O(nlogn)\) 。
WC2019的更多相关文章
- WC2019滚粗记
什么?你问WC2019滚粗记在哪里? 抱歉,这篇文章鸽了. 原因? 引用神仙\(yyb\)的话. 恩,想了想还是更一点吧. Day 0 签到海星,我写了个大大的\(Cgod\)有没有人看见啊,然后被广 ...
- WC2019游记 && 课件
WC2019 游记 课件 wc2019.zip_免费高速下载|百度网盘-分享无限制 提取码: un6z day 0 打飞机去广州... 在飞机上刷了爱乐(le)之城, 相当好看... 广二好大! 哈三 ...
- WC2019 题目集
最近写的一些 WC2019 上讲的一些题.还是怕忘了,写点东西记录一下. LOJ2983 「WC2019」数树 题意 本题包含三个问题: 问题 0:已知两棵 \(n\) 个节点的树的形态(两棵树的节点 ...
- WC2019 tree
WC2019唯一一道正常的题,考场上没什么想法,也只拿到了暴力分.搞了一天终于做完了. 前置知识:purfer序,多项式exp或分治FTT. 对于\(type=0\)的,随便维护下,算下联通块即可. ...
- WC2019 划水记
写在前面: 本篇是擅长咕咕咕的\(\text{BLUESKY007}\)同学难得不咕写的游记,将会记录\(WC2019(2019.1.24(Day\ 0)\sim2019.1.30(Day\ 6))\ ...
- [WC2019] 数树
[WC2019] 数树 Zhang_RQ题解(本篇仅概述) 前言 有进步,只做了半天.... 一道具有极强综合性的数数好题! 强大的多合一题目 精确地数学推导和耐心. 有套路又不失心意. 融合了: 算 ...
- WC2019 游记
Day 0 早上奇迹般的六点半起床平常这时候我还没睡呢 早餐在武汉站吃了一碗28的番茄牛肉米线,结果上菜后我把所有非米线的固体(包括番茄和牛肉)全挑出去了 高二大佬:一个愿宰一个愿挨 在高铁上待了四个 ...
- WC2019 20天训练
Day -1 2019.1.2 初步计划: 0x60 图论 std 洛谷提高剩余练习 NOIP2018遗留题解 洛谷省选基础练习 数学: 1.数论 2.组合数学(练习:莫比乌斯反演) 3.概率(练习: ...
- PKUWC2019游记&&WC2019游记
今天好颓,不想写代码了,写写游记 PKUWC2019游记&&WC2019游记 PKUWC2019游记 提前两天就来了中山纪中,考了两天模拟,第一天比较正常,但是可做题只有T3,第二天非 ...
- 洛谷 P5206: bzoj 5475: LOJ 2983: [WC2019] 数树
一道技巧性非常强的计数题,历年WC出得最好(同时可能是比较简单)的题目之一. 题目传送门:洛谷P5206. 题意简述: 给定 \(n, y\). 一张图有 \(|V| = n\) 个点.对于两棵树 \ ...
随机推荐
- Android修改app图标
1.按照路径找到AndroidManifest.xml中的icon 2.在drawable添加一个png图片 3.然后在AndroidManifest.xml中的icon,修改其中的值 android ...
- 微信小程序支付框样式以及功能
1.页面代码 <view catchtap='showInputLayer' class="btn_pay">立即支付</view> <!-- 密码输 ...
- Spring Boot-使用Spring Initializer快速创建Spring Boot项目
File->project->Spring Initializer 点击next 点击下一步即可,如果是第一次可能需要下载jar包,如下图 resources文件中的目录结构如上图所示 s ...
- Spring-AOP底层实现
1.aop的底层实现:通过spring提供的动态代理技术实现的,在运行期间,spring通过动态代理技术动态的生成代理对象,代理对象方法执行时增强功能的介入,再去调用目标对象的方法,从而完成功能的增强 ...
- Elasticsearch8.1-ElasticsearchClient-Java客户端简单增删查改-随笔
环境准备 Springboot 基本环境 自行前往https://start.spring.io/ 构建一个即可 Elasticsearch服务端 简单说下windows版本的安装 https:// ...
- Linux Red Hat 8.0虚拟机安装过程
Linux Red Hat 8.0虚拟机安装过程 一.安装虚拟机所需要的工具: 1.VMware Workstation Pro 2.Red Hat 8.0 虚拟机镜像 3.还有一个就是VMware的 ...
- A. And Matching
分析题目:这道题的题目是说给定一个2的幂次n,然后要求我们从0~n-1这n个数中不重复的挑选两个进行配对,要求配对后的每一对按位与之和为k: 而且k的话还是从0~n-1都有的: 既然题目都这样说了,那 ...
- Zookeeper启动问题记录——ZooKeeper audit is enabled.
问题原因是Zookeeper的日志服务默认关闭,在zoo.cfg文件中添加 audit.enable=true 保存后重启服务就能够正常启动. 另外,这个只影响Zookeeper的日志记录,不影响其他 ...
- OpenHarmony标准设备应用开发(二)——布局、动画与音乐
(以下内容来自开发者分享,不代表 OpenHarmony 项目群工作委员会观点) 邢碌 上一章我们讲解了应用编译环境准备,设备编译环境准备,开发板烧录,将一个最简单的 OpenAtom OpenHar ...
- 小程序canvas 圆角框带填充颜色
// ctx: 获取canvas的id --- const ctx = wx.createCanvasContext('canvasId') // x 横坐标 y 纵左边 w 框的宽度 h 框的高 ...