首页 > 其他分享 >Solution Set - 容斥原理/二项式反演

Solution Set - 容斥原理/二项式反演

时间:2024-07-20 11:17:56浏览次数:5  
标签:Set sum 容斥 Solution 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} \]


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

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


「BZOJ4665」小w的喜糖

首先对原序列去重,


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


「HDU1098」Ignatius's puzzle

首先不难发现,\(x,a\in[0,64]\) 就能覆盖所有的情况。考虑枚举 \(a\),如果再直接枚举 \(x\)(65次

发现 \(65\) 不是质数,但是 \(65 = 5\times13\),所以要保证 \(5\mid f(x)\) 且 \(13\mid f(x)\)​ 即可。

这种拆模数的方法有点启发意义,虽然不是容斥但还是放在这里了

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

相关文章

  • 广义容斥原理学习
    广义容斥原理概念广义容斥原理解决的是:计算所有至少满足\(k\)个性质的方案数之和。同样的,我们可以通过计算所有至少满足\(k\)个性质的方案数之和来计算恰好满足\(k\)个性质的方案数。方法设\(\alpha(k)\)表示所有至少满足\(k\)个性质的方案数之和。容易得到:\[\al......
  • sql server2008出现set 选项的设置不正确:"ARITHABORT”
    (SELECTSTUFF((SELECT'',''+CODEFROMINVNEWSAL11WHERE(MASTERI=BILRCV.SRCERI)OR(LINKERIIN(SELECTLINKERIFROMINVPROLOGWHEREDTYPE=0ANDPEERVERI=0ANDMERI=BILRCV.SRCERI))FORXMLPATH('''&......
  • 我正在尝试复制 Kaggle 上用于 DAX ESG Media Dataset 的脚本。它下载了 CSV 文件,但没
    文件名是SDGalignmentwithDAXcompanies-Swisstext2023.ipynb我正在使用colaboratory(https://colab.research.google.com/drive)来处理脚本,但我只是收到错误我在colaboratory上下载了有效的文件,他们尝试安装但它不会工作。我已经无计可施了。......
  • 【笔记】Set - 容斥原理/二项式反演
    https://www.becoder.com.cn/contest/5400「BZOJ2863」愤怒的元首题目就是求\(n\)个点DAG的数量。设\(dp_i\)表示\(i\)个点的DAG数量。首先DAG一定存在出度为\(0\)的点,其次删去出度为\(0\)的点,仍构成一个DAG。所以我们可以枚举删去的数量,从而划分子问题。......
  • 解决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):(如我所使用的......
  • 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
    ......
  • 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......