
容斥原理
make_it_for_good
这个作者很懒,什么都没留下…
展开
-
bzoj 2669 状压dp 容斥原理
题意:一个n∗mn*m的矩阵,填1到n∗mn*m 的数,有的位置必须小于八连通的相邻位置,求方案数。设f[i][j]f[i][j] 表示填到i,已经填完的局部最小值的集合为j的方案数。 设cnt[j]cnt[j] 表示对于局部最小值的集合j,不与除j外局部最小值的集合相邻的点的个数。f[i][j]=f[i−1][j]∗(cnt[j]−i+1)+∑f[i][j−k]f[i][j]=f[i-1][j]原创 2016-08-27 19:22:12 · 771 阅读 · 0 评论 -
bzoj 3622 容斥原理
题意:给出有n个元素的集合A和集合B,所有2n个元素互不相同,求将A集合中的元素和B集合中的元素两两配对,使A的元素大于B中元素的对数恰为n+K2\frac{n+K}{2} 对。设f[i][j]f[i][j] 表示A中的前i个元素配对后至少有j对满足A的元素大于B中元素。 那么先将A和B排序,设nex[i]nex[i] 表示b中最后一个小于A中i元素的位置。然后dp一下。 f[i][j]=f[i原创 2016-08-26 19:03:52 · 531 阅读 · 0 评论 -
bzoj 3129 [Sdoi2013]方程 数论 容斥
对于>=>= 的条件从答案中直接减去。 对于<=<= 的条件容斥转成 >=>= 注意是正整数要转成非负,然后直接跑礼物就行啦。#include <bits/stdc++.h> using namespace std; #define ll long long #define PA pair<int,int> int T,p,n,n1,n2,m; int ans,num; int pm[11],原创 2016-10-24 21:03:01 · 303 阅读 · 0 评论