容斥
补集思想、至少恰好的转化等
wind__whisper
qwq
展开
-
HDU5519:Kykneion asma(容斥)
巧妙的容斥计数原创 2022-05-15 23:05:54 · 139 阅读 · 0 评论 -
AT4352 [ARC101C] Ribbons on Tree
容斥原创 2022-04-28 16:26:56 · 141 阅读 · 0 评论 -
模板:min-max容斥&离散随机变量的几何分布(洛谷P3175:[HAOI2015]按位或)
神奇的期望处理技巧原创 2022-01-05 11:31:20 · 575 阅读 · 0 评论 -
模板:容斥优化多重方案背包
所谓容斥优化多重方案背包,就是利用容斥去优化统计方案的多重背包(逃)前言考场上因为不会这个玩意活活把100分正解挂成了70qwq思想还是很妙的就是先当完全背包做,然后扣去多统计的情况注意扣去的使用k+1个i的方案数是上一层的,因为递归的想,使用超过k+1的方案前面已经扣完了,所以不必再扣代码代码实现很简单(当然,必要时可以使用滚动数组)for(int i=1;i<=mxn;i++){ for(int j=0;j<=sum;j++){ f[i][j]=f[i-1.原创 2021-11-08 16:47:03 · 128 阅读 · 0 评论 -
洛谷P3270:成绩比较(容斥、组合数学)
解析依然不会亚qwq但这次至少有点上道了(指推出了一个会导致重复计数的错误式子)首先,我们要选出碾压那些人,方案数就是Cn−1kC_{n-1}^kCn−1k然后,我们要统计每门学科的排名情况考虑比B神分数高的人一定是从没被碾压的人里选。所以对应的方案就是Cn−k−1ri−1C_{n-k-1}^{r_i-1}Cn−k−1ri−1,设为fkf_kfk但是这样随便选可能会导致有的应该没被碾压的人一直没被选到,被碾压,所以这个东西其实是至少碾压kkk人的方案数那么使用常规的容斥套路,这部分的原创 2021-11-02 15:45:57 · 120 阅读 · 0 评论 -
P3160:局部极小值(容斥、状压)
解析又是一道我不会的容斥题qwq本题的一个关键性质:答案有解时,极小值不超过8个所以可以对其进行状压考虑从小到大填数那么在极小值填完之前,它的八连通必然是不能填的设计dpi,sdp_{i,s}dpi,s表示从小到大填了i个数,已经填完的极小值状态为s的方案数不难作出转移但是这样会统计一些不合法的方案!有的非极小值可能由于周围全是非极小值,又随便填,导致成为了极小值所以要扣去所有非极小值成为极小值的方案方法就是dfs枚举哪些非极小值成为极小值dp再按这些非极小值的个数的奇偶性进行容斥原创 2021-11-02 10:59:14 · 133 阅读 · 0 评论 -
洛谷P1450:硬币购物(背包、容斥)
解析呜呜呜不废啊我只会跑n遍多重背包感觉非常神仙的一道题之所以只是蓝的可能是因为代码实现难度太低了吧但感觉思想真的很难想到也可能是我太菜了容斥相关还是需要加强啊qwq考虑如果没有硬币个数的限制的情况显然就是个简单的完全背包了然而如今有了硬币个数的限制所以我们要考虑容斥利用总方案数-硬币个数超过限制的方案数求出答案前面的总方案数就是完全背包的dp值,关键就是对后面硬币个数超过限制方案数的求解考虑第iii种硬币超过限制,那么就至少要使用(di+1)(d_i+1)(di+1)个,剩下原创 2021-11-01 23:49:23 · 166 阅读 · 0 评论 -
洛谷P5664:Emiya 家今天的饭(容斥、dp)
解析应该是比较入门的容斥了统计方案用总方案数-某列超过1半的方案数dp设计的一个trick是只统计差值代码#include<bits/stdc++.h>using namespace std;#define ll long longconst int N=2050;const double eps=1e-6;const int mod=998244353;inline ll read(){ ll x=0,f=1;char c=getchar(); while原创 2021-10-14 15:07:27 · 118 阅读 · 0 评论 -
洛谷P3349:小星星(容斥dp)
解析先安利一波洛谷上我介绍如何用暴力日过去的博客现在开始务正业考虑把dp记录状态的一维s去掉这样单次转移复杂度变成n3n^3n3但是这样显然会算多啊!因为一个编号可能会用很多次考虑容斥设ansians_iansi表示至少浪费了i个编号的答案那么我们的答案显然就是ans0−ans1+ans2...ans_0-ans_1+ans_2...ans0−ans1+ans2...就是一个经典的利用容斥至少转恰好的方法至于ans的计算,可以暴力枚举二进制的集合s,每次进行一次n3n^3n3原创 2021-10-27 20:51:40 · 85 阅读 · 0 评论