当前位置: 首页 > news >正文

三月做题集

CF2194F2 Again Trees... (hard version)

tag:dp、树形 dp、状压 dp、集合幂级数、FWT。

difficulty:中。

先构建 \(b\) 的线性基 \(P\),记其大小为 \(m\),以下讨论中 \(b,aS\) 数组都是其实际值关于 \(P\) 的线性组合。这样的好处是同一实际值唯一对应一个状态。

F1 的做法是设 \(f_{u,S}\) 表示 \(u\) 子树内已确定的连通块异或和为 \(S\)。设 \(aS_u\)\(u\) 子树 \(a\) 异或和。转移时,另记数组 \(g\) 做异或卷积,有 \(g=\oplus_{v\in son_u} f_v\),然后 \(f_{u,S}\gets g_S+\sum\limits_{(aS_u\oplus T)\in b} g_T\),分别表示是否断父边。求解答案用 \(f_{u,aS_1}\) 减去 \(g_{aS_1}\) 即可。

暴力卷积复杂度 \(O(4^mn)\),用 FWT 直接优化复杂度 \(O(m2^mn)\) 还是过不去。

考虑直接维护 \(FWT(f)\),异或卷积按位相乘即可,然后我们需要求 \(\sum\limits_{(aS_u\oplus T)\in b} g_T\),考虑将其写成异或卷积的形式,记数组 \(ok_S=[S\in b]\)

\[\sum\limits_{(aS_u\oplus T)\in b} g_T=IFWT(FWT(\sum\limits_{(aS_u\oplus T)\in b} g_T)) \]

\[=IFWT(FWT((g\oplus ok)[x^{aS_u}])) \]

\[=\frac 1{2^m}\sum\limits_{S} (-1)^{|S\cap aS_u|} FWT(g)[x^S]FWT(ok)[x^S] \]

提前处理出 \(FWT(ok)\) 可以做到 \(O(2^m)\),然后你还要维护单点加后 FWT 数组的变化,利用线性性对每项贡献即可,也是 \(O(2^m)\)。总复杂度 \(O(2^mn)\)

总结:

  • 涉及异或卷积的 dp 转移,每次都 FWT 再 IFWT 回去可能是没必要的,可以考虑直接维护 FWT(dp)。
http://www.jsqmd.com/news/425199/

相关文章:

  • 兰亭妙微作品一青海鸟类资源库网站交互及UI设计 - ui设计公司兰亭妙微
  • 手把手教你用6款AI论文神器,一键极速生成超长篇幅论文 - 麟书学长
  • nodejs+php+vue儿童慈善捐赠管理系统的设计与实现有
  • 2000-2024年地级市市场化水平面板数据
  • WPF实现相机标定
  • 告别传统风控!AI应用架构师详解:金融AI风险预警的4大技术颠覆与架构转型
  • Java基于springboot+vue的智慧医疗采购系统
  • 题解:uoj1015 【ULR #3】我的 XOR 卷积人生
  • Java基于springboot+vue的智慧农场系统
  • nodejs+php+vueJAVA的邮件过滤系统设计与实现
  • 保姆级教程:Python+ComfyUI 本地 AI 绘图全流程
  • 【建筑能耗模拟软件EnergyPlus第二期】天气站点数据
  • Java基于springboot+vue的景区服务平台
  • Java基于springboot+vue的易物小店交换系统
  • nodejs+php+vueO2O小程序生鲜食品商城订购系统
  • nodejs+php+vueOA公文发文管理系统
  • Java基于springboot+vue的旧时光咖啡厅管理系统
  • uni-app x Android 平台 UTS 踩坑全记录:类型、存储、网络、渲染避坑指南
  • Java基于springboot+vue的智慧旅游系统
  • nodejs+php+vue 家庭理财系统 个人理财收支系统 微信小程序
  • nodejs+php+vueHadoop技术下的校园二手交易系统的设计与实现
  • 《人月神话》阅读笔记三
  • 《人月神话》阅读笔记二
  • 华为OD机考双机位C卷 - 商品推荐多属性排序 (Java Python JS GO C++ C)
  • 为什么你的提示工程大数据处理框架不稳定?架构师带你排查根因
  • 华为OD机考双机位C卷 - 卡牌游戏 (Java Python JS GO C++ C)
  • 《人月神话》阅读笔记一
  • 层序地层学练习报告
  • [20260228]如何实现字符串拆分输出数字序列.txt
  • 云原生环境下的大数据集成:挑战与解决方案