摘要: 解:观察一波部分分。 首先小数据直接暴力4n,然后考虑背包。设f[i][a][b][c]表示前i个学校中前三位导师分别有多少人,第四位导师可以直接推出来。 然后暴力枚举每一个人放在哪进行背包。 进一步发现,因为限制条件全是跟行列有关的,所以我们设f[i][a][b]表示前i个学校,第一列和第一行分别 阅读全文
posted @ 2019-04-17 20:34 huyufeifei 阅读(158) 评论(0) 推荐(0) 编辑
摘要: 解:发现我们对a和b做一个集合卷积,对d和e做一个^FWT,然后把这三个全部对位乘上斐波那契数,然后做&FWT就行了。 1 #include <bits/stdc++.h> 2 3 const int N = 150010, MO = 1e9 + 7, inv2 = (MO + 1) / 2; 4 阅读全文
posted @ 2019-04-17 15:28 huyufeifei 阅读(175) 评论(0) 推荐(0) 编辑
摘要: 解:有两种做法...... 第一种,按照秘密袭击coat的套路,我们只需要求出即可。因为一种操作了i次的方案会被恰好计数i次。 那么这个东西怎么求呢?直接用FWT的思想,对于一个状态s,求出选择s所有子集的概率ps。那么第i次操作后是s的子集的概率就是psi。 设fs表示第i次操作之后是s的子集的概 阅读全文
posted @ 2019-04-17 10:20 huyufeifei 阅读(138) 评论(0) 推荐(0) 编辑
摘要: 解:有一个很显然的状压...... 就设f[s]表示选的点集为s的时候所有方案的权值和。 于是有f[s] = f[s \ t] * (sum[t] / sum[s])P。 这枚举子集是3n的。 然后发现这是子集卷积,参考资料。 于是就FWT搞一下...看代码 1 #include <bits/std 阅读全文
posted @ 2019-04-17 08:50 huyufeifei 阅读(143) 评论(0) 推荐(0) 编辑
试着放一个广告栏(虽然没有一分钱广告费)

『Flyable Heart 応援中!』 HHG 高苗京铃 闪十PSS 双六 電動伝奇堂 章鱼罐头制作组 はきか 祝姬 星降夜