建议改为:如何使用FWT直接把反演题草过去

需要清楚 FWT 的本质是什么。

首先我们有一个明显的 DP:

设 \(dp[u][x][S]\) 代表 \(u\) 在图中为 \(x\),子树包含集合 \(S\) 的方案数。

那么我们只需要枚举可行的 \((v,y)\),然后做子集卷积就行。

复杂度 \(O(n^4 \times 2^n)\),无法通过。

考虑硬生生把子集卷积的 \(n^2 \times 2^n\) 优化成 \(n \times 2^n\)。

现在我们将 \(dp[u][x]\) 看做一个整体,那么建出需要做子集卷积的转移树,若干个 \((u,x)\) 与 \((v,y)\) 连接。

子集卷积是什么?将这些数丢到 \(n \times 2^n\) 的数组中去,然后跑 FWT,然后中间再对第一维度做一个卷积,最后 IFWT。

我们直接维护 FWT 的“点值”,只需要考虑如何解决掉多项式乘法。

因为只需要对 \((1,x)\) 这 \(n\) 个数组进行 IFWT,所以这一部分复杂度即使暴力也是 \(O(n^3 \times 2^n)\) 的。

多项式乘法硬拆太难,考虑题意。

很明显只有第 \(siz[u]\) 个数组是有值的,因为别的很明显不合法。于是可以 \(O(2^n)\) 搞定这个过程。

然后对于某些集合不包含点的,完全可以还原数组后手动去掉。每个数组都还原一遍,复杂度为 \(O(n^2 \times n \times 2^n)\),完全可以通过此题。

实际上因为题目特性,直接做子集卷积都是对的(

LGP3349口胡的更多相关文章

  1. Topcoder口胡记 SRM 562 Div 1 ~ SRM 599 Div 1

    据说做TC题有助于提高知识水平? :) 传送门:https://284914869.github.io/AEoj/index.html 转载请注明链接:http://www.cnblogs.com/B ...

  2. 口胡FFT现场(没准就听懂了)&&FFT学习笔记

    前言(不想听的可以跳到下面) OK.蒟蒻又来口胡了. 自从ZJOI2019上Day的数论课上的多项式听到懵逼了,所以我就下定决心要学好多项式.感觉自己以前学的多项式都是假的. 但是一直在咕咕,现在是中 ...

  3. BZOJ 口胡记录

    最近实在是懒的不想打代码...好像口胡也算一种训练,那就口胡把. BZOJ 2243 染色(树链剖分) 首先树链剖分,然后记录下每个区间的左右端点颜色和当前区间的颜色段.再对每个节点维护一个tag标记 ...

  4. Atcoder/Topcoder 口胡记录

    Atcoder/Topcoder 理论 AC Atcoder的❌游戏示范 兴致勃勃地打开一场 AGC 看 A 题,先 WA 一发,然后花了一年时间 Fix. 看 B 题,啥玩意?这能求? 睡觉觉. e ...

  5. NOIP2016考前做题(口胡)记录

    NOIP以前可能会持续更新 写在前面 NOIP好像马上就要到了,感觉在校内训练里面经常被虐有一种要滚粗的感觉(雾.不管是普及组还是提高组,我都参加了好几年了,结果一个省一都没有,今年如果还没有的话感觉 ...

  6. 关于有向图走“无限次”后求概率/期望的口胡/【题解】HNCPC2019H 有向图

    关于有向图走"无限次"后求概率/期望的口胡/[题解]HNCPC2019H 有向图 全是口胡 假了不管 讨论的都是图\(G=(V,E),|V|=n,|E|=m\)上的情况 " ...

  7. 「口胡题解」「CF965D」Single-use Stones

    目录 题目 口胡题解 题目 有许多的青蛙要过河,可惜的是,青蛙根本跳不过河,他们最远只能跳 \(L\) 单位长度,而河宽 \(W\) 单位长度. 在河面上有一些石头,距离 \(i\) 远的地方有 \( ...

  8. PKUSC 2022 口胡题解

    \(PKUSC\ 2022\)口胡题解 为了更好的在考试中拿分,我准备学习基础日麻知识(为什么每年都考麻将 啊啊啊) 首先\(STO\)吉老师\(ORZ,\)真的学到了好多 观察标签发现,这套题覆盖知 ...

  9. 「线性基」学习笔记and乱口胡总结

    还以为是什么非常高大上的东西花了1h不到就学好了 线性基 线性基可以在\(O(nlogx)\)的时间内计算出\(n\)个数的最大异或和(不需要相邻). 上述中\(x\)表示的最大的数. 如何实现 定义 ...

随机推荐

  1. Android 三种菜单(Menu)的实现

    感谢大佬:https://blog.csdn.net/chileme/article/details/82944764 一.常用方法 java onCreateOptionsMenu(Menu men ...

  2. linux下打包所有文件,包括隐藏文件到压缩包

    命令如下: cd /root/test/ tar czvf test.tar.gz .[!.]* * 解释: tar czvf test.tar.gz * 压缩当前文件夹下非[隐藏文件]的文件 tar ...

  3. LBS应用之 根据一点的经纬度实现附近点的查询

    这年头和LBS相关的应用越来越火.从foursquare的热闹程度就可见一般(什么,没听过 foursquare-. 哥们,你 out 了).和 LBS有关的应用一般都包括一些共同的操作,最常见的一个 ...

  4. Docker consul的容器服务更新与发现(超详细配图)

    Docker consul的容器服务更新与发现 1.概述 2.部署 1.概述: (1)什么是服务注册与发现: 服务注册与发现是微服务架构中不可或缺的重要组件.起初服务都是单节点的,不保障高可用性,也不 ...

  5. python基础——生成器与迭代器

    生成器 def func(): print("111") yield 1 print("222") yield 3 print("333") ...

  6. netty系列之:让TCP连接快一点,再快一点

    简介 经典的TCP三次握手大家应该很熟悉了,三次握手按道理说应该是最优的方案了,当然这是对于通用的情况来说的.那么在某些特殊的情况下是不是可以提升TCP建立连接的速度呢? 答案是肯定的,这就是今天我们 ...

  7. JAVA8学习——Stream底层的实现一(学习过程)

    Stream底层的实现 Stream接口实现了 BaseStream 接口,我们先来看看BaseStream的定义 BaseStream BaseStream是所有流的父类接口. 对JavaDoc做一 ...

  8. 查看树莓派系统相关信息的shell代码

    一.系统信息 1.显示系统名.系统版本和cpu架构等 在命令行中输入下面的指令 uname -a 2.系统位数 在命令行中输入下面的指令 getconf LONG_BIT 如图,显示多少就是多少位 3 ...

  9. Unity容器构造函数参数循环引用问题及解决

    关键字: Unity .NET5 .NET6 循环引用 循环依赖 Quartz StdSchedulerFactory 起因 在.NET6/.NET5环境中,使用Unity替换默认容器,用到了Quar ...

  10. Centos安装Sublime text

    Sublime text官方给出方法如下: 1.终端执行以下命令: 安装 GPG 密匙 sudo rpm -v --import https://download.sublimetext.com/su ...