首页 > 其他分享 >子集反演 & sos dp 学习笔记

子集反演 & sos dp 学习笔记

时间:2024-09-25 22:27:50浏览次数:9  
标签:int 枚举 反演 sos 子集 dp

子集反演 & sos dp 学习笔记

子集反演

设 \(g(S)\) 表示集合 \(S\) 的答案,\(f(S)\) 为 \(S\) 的子集的答案和。

根据定义:

\[f(S)=\sum_{T\in S} g(T) \]

子集反演就是:

\[g(S)=\sum _{T\in S}(-1)^{|S|-|T|}f(T) \]

本质上就是容斥原理,可感性理解,证明略(给你你也记不住)。

于是便可以通过求 \(f\) 得到 \(g\)。

sos dp

对于每个 \(0\le i<2^n\),求 \(f_i=\sum _{j\in i} a_j\)。

朴素的做法是直接枚举子集,暴力地是 \(O(4^n)\),初始时 \(f_i=a_i\)。

for(int i=0;i<1<<n;i++)
    for(int j=0;j<i;j++)
        if((i|j)==i) f[i]+=f[j];

而众所周知,枚举子集可以做到 \(O(3^n)\),于是

for(int i=1;i<1<<n;i++){
    f[i]+=f[0];
    for(int j=i;j;j=(j-1)&i)
        f[i]+=f[j];
} 

然而,引入高维前缀和的思想,每一位都可以看做一个维度,先枚举维度,对每个维度分别求和,可以做到 \(O(n2^n)\)

具体可看 高维前缀和(sos dp)

for(int j=0;j<n;j++)
    for(int i=0;i<(1<<n);i++)
        if(i&(1<<j))f[i]=f[i]+f[i^(1<<j)];

标签:int,枚举,反演,sos,子集,dp
From: https://www.cnblogs.com/dccy/p/18432379

相关文章

  • 经典dp问题
    本人的第一篇博客,记录一些经典dp问题(待更新)lis(最长上升子序列)给定一个长为n的序列ai,求这个序列的最长单调上升子序列长度例:a={1,2,4,1,3,4}做法一(n^2)设dp[i]=以a[i]结尾的子序列中,最长的上升子序列的长度如在该例子中dp={1,2,3,1,3,4};动态转移方程:dp[i]=max(dp[j]+1)(j<i,a[j]<a[i......
  • mysql数据库 - anolisos安装
    文章目录一、anolisos系统介绍1.1、anolisos系统的起源1.2、anolisos系统的版本支持1.3、anolisos系统的特点1.4、anolisos系统的适用场景二、环境部署2.1、修改主机名2.2、修改静态ip地址2.3、关闭selinux2.4、关闭或放通防火墙端口三、安装mysql数据库3.1、更新yum源......
  • [dp+dfs]砝码称重
    题目描述现有nnn个砝码,重量分别为a1,......
  • 在WordPress中使用Simple Custom CSS and JS插件美化页面
    目录一、插件安装二、添加代码三、使用案例1、图片居中2、段落前空两格3、添加版权声明四、代码编写简述WordPress是目前使用最广泛的开源建站框架,其主要功能就是“主题”(Theme)系统,该功能可以让用户自定义主题,也可以直接选择第三方个人或公司开发的主题。不过自定......
  • 2024年9月北京、广州、深圳NPDP®产品经理认证,来这很对
    在当今这个快速变化的商业环境中,产品创新已成为企业持续发展与竞争的核心动力。为了有效应对市场挑战,提升产品开发效率与质量,越来越多的企业和个人开始关注并投身于专业的产品开发与管理知识体系的学习与实践中。其中,新产品开发专业人员(NPDP)认证作为全球公认的产品开发与管理领域的......
  • MedPrompt:基于提示工程的医学诊断准确率优化方法
    Medprompt:基于提示工程的医学诊断准确率优化方法秒懂大纲解法拆解MedPrompt提示词全流程分析总结创意视角 论文:CanGeneralistFoundationModelsOutcompeteSpecial-PurposeTuning?CaseStudyinMedicine秒懂大纲├──1研究背景【描述背景和问题】│├──大语言......
  • P3478 STA-Station/换根 $dp$ 板子
    P3478[POI2008]STA-Stationlink给定一个\(n\)个点的树,请求出一个结点,使得以这个结点为根时,所有结点的深度之和最大。一个结点的深度之定义为该节点到根的简单路径上边的数量。对于全部的测试点,保证\(1\leqn\leq10^6\),\(1\lequ,v\leqn\),给出的是一棵树。思路:树......
  • Wordpress Plugins插件巡礼 [Updated: 2024-09-24]
    1.0前言因玩startup比賽,所以用到很多low-code和Wordpressplugins來建立網站/APP。有些工具確真提高了生產力,很符合我的“低投入高產出”風格,因此在這總結一下很好用的Wordpress plugins。2.0 wordpressstartertemplatewordpress有很多免費又好看的模板,用來快速建立自己......
  • WordPress固定链接伪静态怎么设置?【手把手教你】
    WordPress默认链接是参数的形式,也就是常说的动态链接,这种链接对于SEO来说并不是很友好,所以一般我们都会对WordPress的固定链接格式进行修改,设置成伪静态。伪静态与静态的区别就是链接看起来是和静态页面链接一样,但是其实页面还是程序动态生成的。wordress就自带非常完善的伪静态规......
  • WordPress中最佳播客插件:专家级指南
    随着播客的流行,越来越多的专业播客制作者希望通过WordPress网站提升内容品质和用户体验。如果你是一名经验丰富的播客制作者,正在寻找更强大、更灵活的工具来管理和推广播客,这篇文章就是为你准备的。我们将介绍两款适合用户的专家级WordPress播客插件,帮助你充分发挥网站的潜力。1.P......