随笔分类 -  算法->数学->容斥

摘要:ARC105 来了,老年选手感到自己水平有一点差劲 A - Fourtune Cookies 题意:给四块饼干问能不能分成总和相同的两份 二进制枚举就行 #include <bits/stdc++.h> #define fi first #define se second //#define ivo 阅读全文
posted @ 2020-10-14 22:53 sigongzi 阅读(663) 评论(1) 推荐(0)
摘要:"【51nod】1634 刚体图" 给一个左边n个点右边m个点二分图求合法的连通图个数,每条边选了之后会带来价值乘2的贡献 类似城市规划那道题的计数 设$g[i][j]$为左边$i$个点,右边$j$个点的图有多少个(就是边随便连) $f[i][j]$为左边$i$个点右边$j$个点的连通图有多少个 然 阅读全文
posted @ 2019-06-24 08:49 sigongzi 阅读(475) 评论(0) 推荐(0)
摘要:LOJ 3102. 「JSOI2019」神经网络 首先我们容易发现就是把树拆成若干条链,然后要求这些链排在一个环上,同一棵树的链不相邻 把树拆成链可以用一个简单(但是需要复杂的分类讨论)的树背包实现 $dp[u][j][0/1/2]$表示第$u$个点已经选了$j$条链,0是两个不同子树的链拼到一起, 阅读全文
posted @ 2019-06-12 15:50 sigongzi 阅读(463) 评论(0) 推荐(0)
摘要:题解 用容斥,算至少K个极大值的方案数 我们先钦定每一维的K个数出来,然后再算上排列顺序是 $w_{k} = \binom{n}{k}\binom{m}{k}\binom{l}{k}(k!)^3$ 然后有$(n k)(m k)(l k)$是可以随便填的 设$all = nml,v_k = nml ( 阅读全文
posted @ 2019-05-25 17:08 sigongzi 阅读(395) 评论(0) 推荐(0)
摘要:题解 可以想一下保留一个长度为k的不降序列方案数是$f[k] (n k)!$ $f[k]$是有多少个长度为k的不降序列 我们去掉不合法的,一定是前一次操作的时候有一个长度为$k + 1$的不降序列,于是长度恰好为$k$的方案数就是 $f "k" ! f "k + 1" !(k + 1)$ $f[k] 阅读全文
posted @ 2018-12-12 17:46 sigongzi 阅读(239) 评论(0) 推荐(0)
摘要:题解 简单容斥题 至少选了$k$个颜色恰好出现$S$次方案数是 $F[k] = \binom{M}{k} \frac{N!}{(S!)^{k}(N i S)!}(M k)^{N i S}$ 然后恰好$k$个颜色恰好出现$k$次就是 $g[k] = \sum_{j = k}^{M} ( 1)^{k j 阅读全文
posted @ 2018-12-01 10:57 sigongzi 阅读(325) 评论(0) 推荐(1)
摘要:C Candles 题解 点燃的一定是连续的一段,枚举左端点即可 代码 D Median of Medians 二分一个值作为中位数的中位数,把大于这个数的设成1,小于等于这个数的设成0 然后我们就需要知道小于等于这个数做中位数的区间有多少个,用树状数组维护,和全部区间个数的一半比较一下即可 题解 阅读全文
posted @ 2018-10-12 22:14 sigongzi 阅读(365) 评论(0) 推荐(0)
摘要:题解 一道神仙的题 include include include include include define enter putchar('\n') define space putchar(' ') define mp make_pair define pb push_back define 阅读全文
posted @ 2018-06-23 20:09 sigongzi 阅读(247) 评论(0) 推荐(0)
摘要:题解 虽然我知道minmax容斥,但是……神仙能想到把这个dp转化成一个一次函数啊= = 我们相当于求给定的$S$集合里最后一个被访问到的点的时间,对于这样的max的问题,我们可以用容斥把它转化成min问题 也就是 $max{S} = \sum_{T \subset S} ( 1)^{|T| + 1 阅读全文
posted @ 2018-06-15 16:12 sigongzi 阅读(150) 评论(0) 推荐(0)
摘要:题解 有什么LNOI啊,最后都是JLOI罢了 一道非常……懵逼的统计题 当然是容斥,所有的方案 至少有一个点坏掉的正方形 + 至少有两个点坏掉的正方形 至少有三个点坏掉的正方形 + 至少有四个点坏掉的正方形 总共的方案就是 $\sum_{i}^{min(n,m)}i \ (n i + 1) \ (m 阅读全文
posted @ 2018-06-15 14:31 sigongzi 阅读(177) 评论(0) 推荐(0)
摘要:题解 我一开始写的最小表示法写的插头dp,愉快地TLE成60分 然后我觉得我就去看正解了! 发现是容斥 + 矩阵树定理 矩阵树定理对于有重边的图只要邻接矩阵的边数设置a[u][v]表示u,v之间有几条边就好 我们枚举哪些公司不用,然后用矩阵树求一下生成几棵树,复杂度$2^{n 1}(n 1)^3$ 阅读全文
posted @ 2018-06-15 10:17 sigongzi 阅读(191) 评论(0) 推荐(0)
摘要:题解 容斥题 我们枚举出现次数最多的数出现了K次 然后我们需要计算的序列是所有数字出现个数都不超过K 1次 我们枚举不合法的数字的数目j,说明这个排列里除了我们固定出现K次的数至少有j个数是不合法的,先让这j个数每个数出现k次,然后再随意排列 j最大是N / K 那么复杂度就是调和级数了 代码 cp 阅读全文
posted @ 2018-06-11 20:05 sigongzi 阅读(325) 评论(2) 推荐(0)
摘要:题解 没啥特别好的算法,是个讨论题,由于0 1 ?三类数位中最少的不会超过6 如果1不超过6,那么记录$f1(S)$为 $\sum_{T \subset S} val(T)$这个可以通过类似FMT的递推式在$L 2^L$求出 然后容斥,如果这个数和1的个数差别是偶数就加上否则就减掉 如果0不超过6, 阅读全文
posted @ 2018-06-06 13:41 sigongzi 阅读(420) 评论(0) 推荐(0)
摘要:题解 写完之后开始TTTTTTT……懵逼 这道题我们考虑一个东西叫容斥系数啊 啥玩意啊怎么求啊 我们显然可以$n^2$的递推求出来,类似解方程 但是我们打个表就会发现是$f_{i} = ( 1)^{i 1}(i 1)!$ 然后我们再考虑这个式子的容斥意义,假如一个图有m个联通块,那么我们会计算有i个 阅读全文
posted @ 2018-05-30 09:56 sigongzi 阅读(290) 评论(0) 推荐(0)
摘要:题解 一道,神奇的题= = 我们考虑正难则反,我们求去掉这些边后有多少图不是强连通的 怎么求呢,不是强连通的图缩点后一定是一个DAG,并且这个DAG里面有两个点 我们想一下,如果我们把1当成入度为0的点,随便造出个图,可以是这个图吧 如果把2当成入度为0的点,随便造出个图,也可以是这个图吧 把1和2 阅读全文
posted @ 2018-05-28 16:41 sigongzi 阅读(235) 评论(0) 推荐(0)
摘要:听说日本题思维都很棒,去涨涨智商qwq C Half and Half 题解 枚举买多少个AB披萨也行 但是关于买x个AB披萨最后的总花费是个单峰函数,可以三分 这题有点像六省联考2017D1T1送分题期末考试 代码 E Everything on It 题解 容斥,w(i)表示有i个配料出现小于2 阅读全文
posted @ 2018-05-18 21:20 sigongzi 阅读(490) 评论(0) 推荐(0)