
【算法】容斥原理
mysterynoip
蒟蒻OIer
展开
-
LOJ2351「JOI 2018 Final」毒蛇越狱 容斥+子集卷积
题面题目传送门解法暴力显然是枚举???到底填什么,那么单次询问的复杂度为O(2cnt?)O(2^{cnt_?})O(2cnt?),并没有什么可以优化的地方。不妨考虑一个容斥,将???全部看作是111,然后求子集的权值和。但是我们会将某些位置强制为111却填成000的数算入答案,那么我们还要减去这部分的答案。容斥的复杂度为O(2cnt1)O(2^{cnt_1})O(2cnt1)。可以发...原创 2019-10-19 15:07:15 · 446 阅读 · 0 评论 -
bzoj 4596 [Shoi2016]黑暗前的幻想乡 容斥原理+高斯消元+矩阵树定理
题面题目传送门解法似乎是容斥原理的套路题???对于每一个公司恰好修建一条边这个条件似乎并没有那么好处理,那么我们不妨考虑容斥原理答案可以先加上n−1n-1n−1个公司可以随便选的方案数,然后发现n−2n-2n−2个公司随便选的情况被重复统计了,减去n−2n-2n−2个公司的方案数,然后再加上n−3n-3n−3个公司的方案数……这样一直做下去即可现在问题就转化成,如何求给定的xxx个公...原创 2018-09-18 20:26:21 · 156 阅读 · 0 评论 -
bzoj 4818 [Sdoi2017]序列计数 矩阵乘法+dp
题面题目传送门解法将问题稍微转化一下就变得比较简单了直接求似乎并没有那么好做,考虑补集转化,即最后的答案=总方案数-每一个数都不是质数的方案数可以发现,总方案数和每一个数都不是质数的求法其实本质上是一样的,就暂且先只考虑每一个数都不是质数的情况怎么计算答案p≤100p≤100p≤100,那么我们可以将所有非质数按照%p\%p%p的余数分类,记s[i]s[i]s[i]表示%p=i\%p...原创 2018-09-17 22:43:11 · 174 阅读 · 0 评论 -
bzoj 5302 [Haoi2018]奇怪的背包 dp+数论
题面题目传送门解法可以将问题转化成这样一个问题:选出一些数a1,a2,…,ama_1,a_2,\dots,a_ma1,a2,…,am,使得存在这样的x1,x2,…,xmx_1,x_2,\dots,x_mx1,x2,…,xm满足∑i=1maixi≡w(modp)\sum_{i=1}^ma_ix_i\equiv w\pmod p∑i=1maixi≡w(modp)显然需要满足...原创 2019-03-01 22:12:10 · 207 阅读 · 0 评论 -
bzoj 4305 数列的GCD 容斥原理
题面题目传送门解法显然,恰好有kkk个不相同的位置就意味着恰好有n−kn-kn−k个位置的数是相同的,不妨令k=n−kk=n-kk=n−k,求恰好有kkk个位置相同且满足条件的方案数。可以考虑这样一个容斥:令s[i]s[i]s[i]表示有因子iii的数的个数,那么可以得到f[i]=∑i∣jμ(ji)(s[j]k)(⌊mj⌋−1)s[j]−k(⌊mj⌋)n−s[j]f[i]=\sum_{i...原创 2019-03-03 21:23:40 · 228 阅读 · 0 评论