[ARC087F] Squirrel Migration

news/2024/11/6 15:20:48/文章来源:https://www.cnblogs.com/Anonymely/p/18530275

模拟赛题,不知道为什么放在最后一题,感觉评分过高了。

首先是经典问题,最大值是 \(\sum \min(siz, n-siz)\),证明考虑每条边上界。

考虑证明的构造,对于重心的每个儿子拉出子树,求出子树大小即可转为序列上问题:每个点不跟内部匹配即可满足最大,容易证明充要。

朴素 dp 发现怎么也避不开两维状态,非常没有前途。

考虑二项式反演,钦定 \(x\) 个点与自己匹配,剩下的方案是好算的,于是 \(f_{i,j}\) 表示考虑前 \(i\) 个子树,其中钦定的有 \(j\) 个的方案,转移枚举这个子树钦定几个,方案数是 \(\binom{siz}{k}^2*fac_k\),统计答案时对于剩下的 \(n-j\) 个点可以随便匹配。

复杂度是 \(O(n^2)\),证明考虑类似树形背包,任意两个点只会被算一次。

const int N = 5005;
int n;
vector <int> e[N];
int A, B, siz[N], rt, rt_siz;
void find_rt(int u, int fa) {siz[u] = 1;int mx = 0;for (auto v : e[u]) if (v != fa) {find_rt(v, u);siz[u] += siz[v];ckmax(mx, siz[v]);}ckmax(mx, n - siz[u]);if (!rt || mx < rt_siz) rt = u, rt_siz = mx;
}
void dfs(int u, int fa) {siz[u] = 1;for (auto v : e[u]) if (v != fa) dfs(v, u), siz[u] += siz[v];
}
int w[N], tot;
int f[N], g[N], fac[N], inv[N];
void init(int lim) {fac[0] = 1;for (int i = 1; i <= lim; i++) fac[i] = Cmul(fac[i - 1], i);inv[lim] = ksm(fac[lim], mod - 2);for (int i = lim; i >= 1; i--) inv[i - 1] = Cmul(inv[i], i);
}
int binom(int n, int m) {if (n < m || m < 0) return 0;return Cmul(fac[n], inv[m], inv[n - m]);
}void main01() {ios::sync_with_stdio(0), cin.tie(0);cin >> n;for (int i = 1, u, v; i < n; i++) {cin >> u >> v;e[u].emplace_back(v);e[v].emplace_back(u);}find_rt(1, 0);for (auto v : e[rt]) dfs(v, rt), w[++tot] = siz[v];init(n);f[0] = 1;for (int o = 1, sum = 0, siz; o <= tot; o++) {siz = w[o];for (int j = 0; j <= sum; j++) if (f[j]) {for (int k = 0; k <= siz; k++) {Madd(g[j + k], Cmul(f[j], binom(siz, k), binom(siz, k), fac[k]));}}sum += siz;for (int j = 0; j <= sum; j++) f[j] = g[j], g[j] = 0;}for (int i = 0; i <= n; i++) Mmul(f[i], fac[n - i]);int ans = 0;for (int i = 0; i <= n; i++) {if (i & 1) Mdel(ans, f[i]);else Madd(ans, f[i]);}cout << ans << '\n';
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/827681.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于ESP32的桌面小屏幕实战[2]:硬件设计之充电管理

1. 硬件基础知识 1.1 原理图设计、PCB设计、PCB(电路板)、PCBA(电路板+元器件)分别长什么样?1.2 高低电平 一般可以理解为输出电压=VCC就是高电平,输出电压=GND(一般是0V)就是低电平,分别用1和0来表示,这个是理想值。 但实际上它也有一个范围,比如你的单片机供电压(…

jmeter 固定吞吐量定时器

使用:模拟18000 QPS查询 Hits Per SecondTPS :聚合报告: Target throughput(in samples per minute):目标吞吐量(单位分钟),即每分钟执行多少次(TPM)Calculate Throughput based on(计算吞吐量策略):1、This thread only:仅对当前线程,也就是每个线程相互是不干扰的,都…

VS引用本地的NuGet包

Step1.打包 先选择项目/类库,进行打包。在输出中,找到打包的目录和文件。 Step2.本地创建一个文件夹用于放打包文件。Step3.添加包源 打开 VS --> 工具 --> NuGet包管理器 --> 管理解决方案的NuGet程序包 选择右上方:程序包源右侧的齿轮按钮 在程序包源中,新增一…

cuda、cudnn、zlib 深度学习GPU必配三件套(Ubuntu)

跨大版本不推荐,到处是坑、坑、坑~。tensorrt10、cuda12、cudnn9是目前最新的大版本,但是对于一般的老显卡(1050等),太新可能提醒一些错误(主要是tensorrt太新导致的)。为了不折腾,使用如下版本:tensorrt8.6.1、cuda11.8、cudnn8.9.7 默认已经安装了英伟达显卡的最新版…

微信公众号音频下载器

微信公众号音频下载器我关注的一个大V,总是喜欢发布音频内容。 但是呢,由于众所周知的原因,这些内容往往被删除了,我就没法再听了。。。 于是,我想给他的音频保存下来。 虽然我可以自己搞定,但是毕竟没有现成的工具。于是,我发挥程序员的优势,自己动手写一个小工具。于…

北京-丰台-纪家庙

西域美食永照兰州拉面(❤❤❤)地址:丰台区南三环西路91号院1号楼1层107室 单人拉面套餐 ​ 招牌拉面 ​ 凉菜拼盘素 ​ 鸡蛋 ​ 价格:20R ​ 评价:拉面中规中矩,汤有点油,6分;凉菜爽口,不过也有点油,6分;煎蛋能吃出来不是剩的,7分;服务员主动给我提…

C++中调用C函数,会提示undefined reference to xxx,collect2: error: ld returned 1 exit status

在C++中调用C函数,即使头文件等都包含,编译后提示错误undefined reference to xxx,collect2: error: ld returned 1 exit status。这是因为C和C++编译过来中,函数的符号表示不一样。在c++中,为了支持重载机制,在编译生成的汇编码中,要对函数的名字进行一些处理,加入比如…

img 标签高度多了几个像素

因为img标签是行内标签自带间距,导致图片和div之间有间隙<div class="img-container"><img src="xxxxxxxxx" /> </div> <style lang=less> .img-container {width: 200px;font-size: 0; // 方法一img {display: block; // 方法二…

【教程】第一章:界面和安装介绍——初识 NocoBase

1.1 快速体验 首先,我们推荐你快速体验 NocoBase,了解它的强大功能。你可以在 在线 Demo 填写邮箱和相关信息,点击开通。即可收到为期 2 天的体验系统,包含全部商业插件:收到 NocoBase 官方邮件之后,可以先行探索,感受 NocoBase 的灵活强大。可以在体验系统中随意操作,…

idea的git提交显示异常改怎么处理

1、打开设置 2、将项目和其他的VSC改为Git

Burp Suite Professional 2024.10 for macOS x64 ARM64 - 领先的 Web 渗透测试软件

Burp Suite Professional 2024.10 for macOS x64 & ARM64 - 领先的 Web 渗透测试软件Burp Suite Professional 2024.10 for macOS x64 & ARM64 - 领先的 Web 渗透测试软件 世界排名第一的 Web 渗透测试工具包 请访问原文链接:https://sysin.org/blog/burp-suite-pro-m…

Burp Suite Professional 2024.10 for Windows x64 - 领先的 Web 渗透测试软件

Burp Suite Professional 2024.10 for Windows x64 - 领先的 Web 渗透测试软件Burp Suite Professional 2024.10 for Windows x64 - 领先的 Web 渗透测试软件 世界排名第一的 Web 渗透测试工具包 请访问原文链接:https://sysin.org/blog/burp-suite-pro-win/ 查看最新版。原创…