首页 > 其他分享 >【笔记】Set - 容斥原理/二项式反演

【笔记】Set - 容斥原理/二项式反演

时间:2024-07-19 10:41:37浏览次数:14  
标签:Set sum 容斥 反演 DAG choose 二项式 dp

https://www.becoder.com.cn/contest/5400


「BZOJ2863」愤怒的元首

题目就是求 \(n\) 个点 DAG 的数量。

设 \(dp_i\) 表示 \(i\) 个点的 DAG 数量。

首先 DAG 一定存在出度为 \(0\) 的点,其次删去出度为 \(0\) 的点,仍构成一个 DAG。

所以我们可以枚举删去的数量,从而划分子问题。

\(g(n)\) 表示从 \(N\) 个不同元素 钦定/选至少 \(n\) 个元素形成特定结构的方案数;

\(f(n)\) 表示 恰好 使用 \(n\) 个不同元素(且这 \(n\) 个元素包含所有被钦定的)形成特定结构的总方案数。

具体地,\(dp_i=\sum\limits_{j=1}^i{i\choose j}dp_{i-j}2^{j(i-j)}\)

但是这样显然不对,因为后面算的实际上是至少,而我们需要的是恰好,即 \(g(j)={i\choose j}dp_{i-j}2^{j(i-j)}\)。

于是二项式反演一下:

\[\begin{aligned} dp_i&=\sum_{j=1}^if(j)\\ &=\sum_{j=1}^i\sum_{k=j}^{i}{k\choose j}(-1)^{k-j} g(k)\\ &=\sum_{j=1}^i\sum_{k=j}^{i}{k\choose j}(-1)^{k-j}{i\choose k}dp_{i-k}2^{k(i-k)}\\ &=\sum_{k=1}^i{i\choose k}dp_{i-k}2^{k(i-k)}\sum_{j=1}^{k}{k\choose j}(-1)^{k-j}1^j&【\text{换求和顺序}】\\ &=\sum_{k=1}^i{i\choose k}dp_{i-k}2^{k(i-k)}(0-(-1)^k)&【\text{二项式定理(需要补 0 次项)}】\\ &=\sum_{k=1}^i(-1)^{k-1}{i\choose k}dp_{i-k}2^{k(i-k)} \end{aligned} \]


或者直接考虑容斥(再一次体现了容斥和二项式定理本质是相同的。

就是上面的最后一个式子。

标签:Set,sum,容斥,反演,DAG,choose,二项式,dp
From: https://www.cnblogs.com/CloudWings/p/18310991

相关文章

  • 解决BHG:no labels found in detect set, can not compute metrics without labels
    背景:在用yolov8训练别的数据集时,出现“nolabelsfoundindetectset,cannotcomputemetricswithoutlabels”问题。数据集格式:解决方法:在ultralytics\data\dataset.py中找到img2label关键词,并跳转到utils.py文件。修改这段代码的绿色部分(images/labels):(如我所使用的......
  • 基于MATLAB的从图像反演SAR原始回波【持续更新】
    一、概论当前在网上公开的SAR数据大部分都是聚焦过后的SLC图像,对想研究成像原理的朋友十分不友好,该文章提出了一种基于图像进行反演SAR原始回波的方法。二、SAR原理介绍想要理解SAR的原理,需要先了解两个基本概念1、多普勒效应多普勒效应(Dopplereffect)是为纪念奥地......
  • python 内置类型简述(4) —— 集合映射类(set、frozenset、dict)
    注:Iterable[int]为任一元素为int类型的可迭代对象,如列表[1,2,3]注:set()为一个集合实例,可用任一列表替换(如{‘asd’}),frozenset()、dict()同理注:set|frozenset|dict表示参数可为set、frozenset、dict任一类型,set()|frozenset()|dict()同理1.新建字典{k......
  • Amazon Science 团队计划于VLDB 2024 (August 26-30 2024) 发布 redset 数据集
    数据集介绍        Redset是一个数据集,包含了三个月的AWSRedshiftfleet 中选定实例样本上运行的用户查询元数据。数据集用途    AmazonScience团队打算在VLDB2024期间开放该部分数据,虽然目前数据集还没有开放,但是从数据集的Schema来看,和在VLDB2024......
  • 猫头虎分享已解决Bug ||Asset validation failed (90296) App sandbox not enabled. T
    ......
  • 莫比乌斯反演
    前置知识:积性函数。定义:一个函数\(f\),若\(\forall\gcd(a,b)=1\),都有\(f(a)\timesf(b)=f(a\timesb)\),则它是积性函数。一个函数\(f\),若\(\forall(a,b)\),都有\(f(a)\timesf(b)=f(a\timesb)\),则它是完全积性函数。正题狄利克雷卷积先放一张图方便下文理解(copyz......
  • A. Split the Multiset
    原题链接题解想象一条有n个1的链,每个1之间一条边相连,每次操作最多破坏k-1条链code#include<bits/stdc++.h>#definelllonglongusingnamespacestd;constllN=114514;llfunc(lln,llk){if(n==1)return0;if(n<=k)return1;returnfunc(n......
  • D. Round Subset
    原题链接题意选择\(k\)个数,使得\(\min(\sum2,\sum5)\)最大实施1.二维背包dp,使因数5和2达到某一值的最小选择个数,但是因子数量最多有3600,会T2.于是试着想能不能交换背包容量与价值?3.发现k最多只有200,好像可以细节最多有6000个五大约code#include<bits/st......
  • 2024-07-17 前端项目中assets文件夹和public文件夹的区别(来源:GPT)
    在前端项目中,assets文件夹和public文件夹都扮演着存储静态资源的重要角色,但它们之间存在一些关键的区别。以下是对这两个文件夹区别的详细分析:assets文件夹内容与用途:assets文件夹通常用于存放项目中可能会变动的静态资源,如图片、样式表(CSS文件)、JavaScript脚本、字体文件等......
  • search_fields 和 FilterSet
     第一种方法search_fields=['code','name','short_name','org_type','trade_status','address','search']#search字段模糊搜索 第二种方法fromdjango_filters.rest_frameworkimportFi......