全网唯一一篇容斥题解 Description Solution 看到这个题,大部分人想的是状压dp 但是我是个蒟蒻没想到,就用容斥切掉了. 并且复杂度比一般状压低, (其实这个容斥的算法,提出来源于ywy_c_asm) (然而我知道了这个算法,竟然和他写的不一样,而且比他跑的快) 进入正题: 我们需要统计恰好满足匹配k个的情况. 那么,我们可以先找出来,恰好满足n个,n-1,n-2...k个的情况. 分别记为ans[i] ans[i]怎么算呢? 先给出公式: ans[i]=cal(i)-∑C(j…
题意:给n,m,求出 思路:题意为求出1~m所有数和n的gcd之和.显然gcd为n的因数.我们都知道gcd(a,b)= c,那么gcd(a/c,b/c)= 1.也就是说我们枚举n所有的因数k,然后去找1~m/k中和n/k互质的个数就是gcd为k的个数.这个直接容斥就行. 代码: #include<iostream> #include<algorithm> #include<cstdio> #include<stdio.h> #include<strin…
51nod1434 区间LCM 跟容斥没有关系.首先可以确定的一个结论是:对于任意正整数,有1*2*...*n | (k+1)*(k+2)*...*(k+n).因为这就是$C_{n+k}^{k}$. 于是这题就有:m最多枚举到2n. 于是有一个做法:对n!分解质因数,然后枚举m的同时统计已获得的所有质因数的次幂,全部不小于n!时即可推出. 复杂度肯定不大于$O(n\log n)$. 同时这里有一个不会证的结论:找到n以内最大的$p^k$的数(p是质数),答案就是$2p^k$. $O(n\log…
[UOJ#422][集训队作业2018]小Z的礼物(min-max容斥,轮廓线dp) 题面 UOJ 题解 毒瘤xzy,怎么能搬这种题当做WC模拟题QwQ 一开始开错题了,根本就不会做. 后来发现是每次任意覆盖相邻的两个,那么很明显就可以套\(min-max\)容斥. 要求的就是\(max(All)\),而每个集合的\(min\)是很好求的. 如果直接暴力枚举集合复杂度就是\(2^{cnt}cnt\). 仔细想想每个子集我们要知道的是什么,只需要知道子集大小来确定前面的容斥系数,还需要知道覆盖子集…
传送门 我永远讨厌\(dp.jpg\) 前置姿势 扩展\(Min-Max\)容斥 题解 看纳尔博客去→_→ 咱现在还没搞懂为啥初值要设为\(-1\)-- //minamoto #include<bits/stdc++.h> #define R register #define fp(i,a,b) for(R int i=a,I=b+1;i<I;++i) #define fd(i,a,b) for(R int i=a,I=b-1;i>I;--i) #define go(u) for(…
[题解]Counting D-sets(容斥+欧拉定理) 没时间写先咕咕咕. vjCodeChef - CNTDSETS 就是容斥,只是难了一二三四五\(\dots \inf\)点 题目大意: 给定你一个\(n\)维空间,问你这个空间内有多少个点集满足两点间最大的切比雪夫距离为\(d\).两个点集不同,当且仅当两个点集无法通过平移而想等. 转化1 考虑最后那个限制,平移想等的限制,受这道题的启发[题解]At2370 Piling Up,我们考虑钦定每一维的\(0\)点都有点坐落,这样就钦定了一个…
[题解]CF559C C. Gerald and Giant Chess(容斥+格路问题) 55336399 Practice: Winlere 559C - 22 GNU C++11 Accepted 186 ms 1608 KB 2019-06-09 17:03:21 2019-06-09 17:03:21 一道小水题(为什么2400??我为什么之前被一道2200锤QAQ) 有个很显然的公式,在组合数学那本书上面也有. 从坐标\((0,0)\)到坐标\((x,y)\)总共有\({x+y}\c…
[CQOI2014]数三角形 题解(数论+容斥) 标签:题解 阅读体验:https://zybuluo.com/Junlier/note/1328780 链接题目地址:洛谷P3166 BZOJ 3505 思想还是很巧妙的...(对于我这种菜鸡) 理解题意 首先它说\(n×m\)的网格,实际上是有\((n+1)×(m+1)\)个点来放三角形的顶点 然后就是算三角形的个数 怎么做 PS:以下所讲的所有\(n\)都是\(n+1\),\(m\)也是 可以用\(\dbinom{n×m}{3}\)算出网格中…
[题解]毒蛇越狱(FWT+容斥) 问了一下大家咋做也没听懂,按兵不动没去看题解,虽然已经晓得复杂度了....最后感觉也不难 用FWT_OR和FWT_AND做一半分别求出超集和和子集和,然后 枚举问号是01,裸的,\(O(2^{cnt[?]})\) 默认问号是1,利用子集和求,\(O(2^{cnt[1]})\) 默认问号是0,利用超集和求,\(O(2^{cnt[0]})\) 可以知道\(min(cnt)\le n/3\),所以复杂度\(O(n2^n 2^{n/3}Q)\) //@winlere #…
[题解][HAOI2018]染色(NTT+容斥/二项式反演) 可以直接写出式子: \[ f(x)={m \choose x}n!{(\dfrac 1 {(Sx)!})}^x(m-x)^{n-Sx}\dfrac 1 {(n-Sx)!} \] \(f(x)\) 钦定有\(x\)种颜色出现了恰好\(S\)的方案 然后推一下恰好有\(x\)种颜色出现了恰好\(S\)次的方案\(g(x)\) .推导在下下面. 最后的答案是\(\sum w_i g(i)\) 推导: 显然颜色种类不会超过\(L=\lfloo…