
【算法】组合数学
文章平均质量分 86
cz_xuyixuan
这个作者很懒,什么都没留下…
展开
-
【AtCoder】AtCoder Grand Contest 023
比赛链接点击打开链接官方题解点击打开链接Problem A. Zero-Sum Ranges即计算前缀和相同的点对数,可以用 std::map 简单实现。时间复杂度 O(NLogN)O(NLogN)O(NLogN) 。#include<bits/stdc++.h>using namespace std;const int MAXN = 2e5 + 5;typedef...原创 2019-09-11 19:23:59 · 289 阅读 · 0 评论 -
【省内训练2019-06-01】卖弱
【思路要点】问题等价于禁用 N×NN\times NN×N 的矩阵的左上角 A×AA\times AA×A 的三角形范围、右下角 (N−A)×(N−A)(N-A)\times (N-A)(N−A)×(N−A) 的三角形范围,在剩余部分各行各列均选出恰好一个元素的方案数。若只禁用一个 (N−A)×(N−A)(N-A)\times (N-A)(N−A)×(N−A) 的三角,显然方案数为 AN−...原创 2019-06-05 12:38:31 · 333 阅读 · 0 评论 -
【LOJ3124】「CTS2019」氪金手游
【题目链接】点击打开链接【思路要点】考虑给出的图为外向树的情况,各个点都需要早于子树中所有的点,记 sizeisize_isizei 表示 iii 子树中所有点的 wiw_iwi 之和,则获奖概率为∏i=1Nwisizei\prod_{i=1}^{N}\frac{w_i}{size_i}i=1∏Nsizeiwi对所有 wiw_iwi 的分布进行背包即可。给出的...原创 2019-05-30 16:51:44 · 512 阅读 · 0 评论 -
【LOJ3119】「CTS2019」随机立方体
【题目链接】点击打开链接【思路要点】考虑如下计算方式:任选 kkk 个三维坐标互不相等的位置,规定它们的大小关系,则对于每一个位置,都有至多一个限制,要求该值小于另一位置的值,这样的关系形成了一棵树,可以通过计算树的拓扑排序数来得到这 kkk 个位置均为极大点的概率,记所有选法的概率和为 func(k)func(k)func(k) 。对于一个具有 iii 个极大点的方案,它会...原创 2019-05-30 13:24:50 · 272 阅读 · 0 评论 -
【LOJ3120】「CTS2019」珍珠
【题目链接】点击打开链接【思路要点】记 Lim=Min{D,N−2M}Lim=Min\{D,N-2M\}Lim=Min{D,N−2M} 。答案即为N!∑i=0Lim(ex+e−x2+yex−e−x2)D[xN][yi]N!\sum_{i=0}^{Lim}(\frac{e^x+e^{-x}}{2}+y\frac{e^x-e^{-x}}{2})^D[x^N][y^i]N!i=0∑...原创 2019-05-30 13:56:47 · 430 阅读 · 0 评论 -
【LOJ2554】「CTSC2018」青蕈领主
【题目链接】点击打开链接【思路要点】值域连续的区间的交和并均为值域连续的区间,因此一个合法输入应当能够构成一个树形结构。考虑一个节点的子树,其对应的区间值域连续,且在后续的考虑中,我们会避免使其出现在更大的连续区间中,因此我们可以等效地将其看做一个数。因此,记 fif_ifi 表示长度为 i+1i+1i+1 的,去掉最后一个元素后不存在非平凡连续区间的排列个数, sis_i...原创 2019-04-19 21:25:43 · 793 阅读 · 2 评论 -
【LOJ3056】「HNOI2019」多边形
【题目链接】点击打开链接【思路要点】不难发现唯一的终止状态就是所有点均与 NNN 直接相连的状态。因此,使用最少的操作达到终止状态的方案一定是每次选择一个不与 NNN 直接相连,且与 NNN 连线只与一条边相交的节点,旋转对应的四边形。因此最少次数即为不与 NNN 直接相连的点的个数。考虑计算方案数,不难发现各个与 NNN 直接相连的点将多边形分成了若干块,每一块的方案数相...原创 2019-04-23 13:54:57 · 506 阅读 · 0 评论 -
【省内训练2019-06-06】计数
【思路要点】考虑枚举一对颜色相等的位置 i,ji,ji,j ,计算它们的贡献,则有Ans=∑i=1N∑j=i+1N[ci=cj]2j−i−1∑k=0min{i−1,N−j}(i−1k)×(N−jk)Ans=\sum_{i=1}^{N}\sum_{j=i+1}^{N}[c_i=c_j]2^{j-i-1}\sum_{k=0}^{min\{i-1,N-j\}}\binom{i-1}{k}\tim...原创 2019-06-10 17:03:30 · 225 阅读 · 0 评论 -
【省内训练2019-06-02】担心
【思路要点】可以发现,选取相邻的人的过程与单挑的胜负是无关的,且是等概率的。因此可以考虑计算全部 (N−1)!(N-1)!(N−1)! 种选取相邻的人的方式中 kkk 号玩家胜利的概率之和。注意到由于 kkk 号玩家不能失败,其两侧的游戏可以看做是独立的,最后乘以一个选取顺序数的组合数即可合并两侧的概率和。考虑动态规划,记 dpi,j,0/1dp_{i,j,0/1}dpi,j,0/1...原创 2019-06-04 16:29:39 · 232 阅读 · 0 评论 -
【AtCoder】AtCoder Grand Contest 021
比赛链接点击打开链接官方题解点击打开链接Problem A. Digit Sum 2考虑如何用最小的数得到某个数位和 SSS ,显然是将最低的若干位设为 999 。因此,我们只需要考虑形如 x999…9x999\dots9x999…9 的数,找到 NNN 以内最大的这样的数即可。时间复杂度 O(LogN)O(LogN)O(LogN) 。#include<bits/stdc++...原创 2019-09-04 10:24:09 · 370 阅读 · 0 评论 -
【CodeForces1188E】Problem from Red Panda
【题目链接】点击打开链接【思路要点】我们称将其余每一种颜色的气球各一个标为颜色 iii 为操作 iii 。考虑对于给定的 {ai}\{a_i\}{ai} ,如何判断是否能够进行 aia_iai 次操作 iii ,下称 {ai}\{a_i\}{ai} 是否可行。显然最优的方案是每一次操作一个 aia_iai 不为 000 且对应的气球数最少的颜色。按照这样的策略,可以...原创 2019-08-25 11:12:45 · 543 阅读 · 3 评论 -
【AtCoder】AtCoder Grand Contest 036 题解
【比赛链接】点击打开链接【题解链接】点击打开链接【A】 Triangle【思路要点】注意到对于任意一个格点三角形,我们都可以找到一个点,将其平移至原点处后,另外两个点在同一象限内,或在该象限相邻的坐标轴上。因此,可以不失一般性地假定一个点在 (0,0)(0,0)(0,0) 处。令另外两点的坐标为 (x,y),(a,b)(x,y),(a,b)(x,y),(a,b)...原创 2019-08-09 21:08:44 · 499 阅读 · 0 评论 -
【AtCoder】AtCoder Grand Contest 035 题解
【比赛链接】点击打开链接【题解链接】点击打开链接【A】 XOR Circle【思路要点】题目给出的要求等价于相邻的三个数异或和为 000 。特判全部 aia_iai 均为 000 的情况,这种情况是有解的。否则,如果确定 1,21,21,2 号位置为 a,ba,ba,b ,则 333 号位置一定为 a⊕ba\oplus ba⊕b , 444 号位置一定为 aa...原创 2019-08-04 18:25:14 · 547 阅读 · 2 评论 -
【省内训练2019-07-01】Match
【思路要点】考虑方差的期望的公式,记 F0=1,Fi=(2i−1)Fi−1F_0=1,F_i=(2i-1)F_{i-1}F0=1,Fi=(2i−1)Fi−1 , MetMetMet 表示可能的权值序列的集合,则有Ans=1∣Met∣∑a∈Met∑i=1N(ai−∑aiN)2NAns=1N×FN∑a∈Met∑i=1N(ai2−2ai(∑ai)2N+(∑ai)2N2)Ans=1N×FN∑...原创 2019-07-01 14:06:27 · 283 阅读 · 0 评论 -
【省内训练2019-06-28】Islands
【思路要点】考虑一个子问题,即本题 K=NK=NK=N 时的情况。选择 1,2,…,M1,2,\dots,M1,2,…,M 作为关键点,最后将答案乘以 (NM)\binom{N}{M}(MN) 。按照如下方式定义森林的 PruferPruferPrufer 序列:找到最大的叶子节点 xxx ,记录下与 xxx 直接相连的点的标号,然后将 xxx 删去,直到只剩下 1,2,…,M1,2,...原创 2019-06-28 20:59:28 · 484 阅读 · 0 评论 -
【省内训练2019-06-28】Trominoes
【思路要点】将划分和标号放在一起考虑,即依次放入标号为 1∼N×M31\sim{}\frac{N\times M}{3}1∼3N×M 的骨牌,保证当前放入区域的轮廓线为单调的,不难发现放置方案与题目中所要计算的方案数一一对应。将轮廓线描述为 NNN 个 “上” 和 MMM 个 “右” ,用 111 来表示 “上” , 000 来表示 “右” ,则初始时的轮廓线为 111…1000…011...原创 2019-06-28 20:41:10 · 573 阅读 · 3 评论 -
【省内训练2019-06-28】Swords
【思路要点】补集转化,对于每个询问 SSS ,考虑求不能满足条件的方案数 query(S)query(S)query(S) 。记 cntS=∑i=1N[ai∪S=∅]cnt_S=\sum_{i=1}^{N}[a_i\cup S=\empty]cntS=∑i=1N[ai∪S=∅] ,即不能满足 sss 中任何一个条件的 aia_iai 的个数。则由容斥原理,有 query(S)=∑...原创 2019-06-28 19:03:51 · 495 阅读 · 0 评论 -
【2019 江苏省队集训】Day1 解题报告
【T1】 光影交错【思路要点】NNN 轮后仪式仍然进行的概率为 (1−p)N(1-p)^N(1−p)N ,当 p=10−5p=10^{-5}p=10−5 时,取 N>107N>10^7N>107 可以保证该概率在 10−2010^{-20}10−20 以内,因此忽略这部分情况不会导致精度要求不能接受的误差产生。记 f(i)f(i)f(i) 表示出现 ii...原创 2019-07-02 14:13:33 · 1440 阅读 · 1 评论 -
【LOJ573】「LibreOJ NOI Round #2」单枪匹马
【题目链接】点击打开链接【思路要点】见 官方题解 。(反正也是我写的)时间复杂度 O(N+M)O(N+M)O(N+M) 。【代码】#include<bits/stdc++.h>using namespace std;const int MAXN = 1e6 + 5;const int P = 998244353;typedef long long ...原创 2019-07-07 20:01:41 · 562 阅读 · 0 评论 -
【LOJ2250】「ZJOI2017」仙人掌
【题目链接】点击打开链接【思路要点】考虑给定的图为大小为 N+1N+1N+1 的点的菊花图的情况,记方案数为 dpNdp_NdpN ,考虑最后一个儿子是否连边,则有转移 dpi=dpi−1+(i−1)dpi−2dp_i=dp_{i-1}+(i-1)dp_{i-2}dpi=dpi−1+(i−1)dpi−2断开环边,剩余问题即为如何解决图是一棵树的情况。注意到由于不允许存...原创 2019-06-23 11:41:06 · 345 阅读 · 0 评论 -
【校内训练2019-04-17】Graph
【思路要点】记 PN(k)P_N(k)PN(k) 表示 NNN 的点的图选择 kkk 次,图尚不连通的概率,那么E(Ans)=∑k=0∞PN(k)E(Ans)=\sum_{k=0}^{\infty}P_N(k)E(Ans)=k=0∑∞PN(k)考虑计算 PN(k)P_N(k)PN(k) ,枚举 iii ,选定一个大小为 iii 的不连通的边集,限定 kkk 次选择均在该边集内,则...原创 2019-04-19 14:07:00 · 246 阅读 · 0 评论 -
【校内训练2019-03-22】礼物
【思路要点】特判 N=MN=MN=M 的情况,下令 N>MN>MN>M 。首先通过 PolyaPolyaPolya 计数法将问题转化为不能转动的形式,即枚举置换环长 i (i ∣ N,i ∣ M)i\ (i\ |\ N,i\ |\ M)i (i ∣ N,i ∣&nbs...原创 2019-03-25 13:14:54 · 202 阅读 · 0 评论 -
【CodeForces623E】Transforming Sequence
【题目链接】点击打开链接【思路要点】记 dpi,jdp_{i,j}dpi,j 表示数列的前 iii 项的并有 jjj 位,枚举数列的第 i+1i+1i+1 位使得数值的并增加了 kkk 位,则将 2j∗(j+kk)∗dpi,j2^j*\binom{j+k}{k}*dp_{i,j}2j∗(kj+k)∗dpi,j 加入 dpi+1,j+kdp_{i+1,j+k}dpi+1,j+...原创 2019-03-12 14:32:38 · 294 阅读 · 0 评论 -
【校内训练2019-02-20】K-Beautiful Tree
【思路要点】令题目中的 kkk 为 mmm ,考虑 m=1m=1m=1 的情况,即所有同色点不能相邻。我们可以使用容斥原理来解决该问题,即强制树上出现 iii 条连接同色点的边,将答案乘上 (−1)i(-1)^i(−1)i 计入答案。将同色的点划分为若干个集合,令集合大小为 iii ,则乘上容斥系数 (−1)i(-1)^i(−1)i 。强制集合内的点在树上为一个联通块,再计算联通块之间的...原创 2019-02-22 12:17:41 · 276 阅读 · 0 评论 -
【校内训练2019-02-22】Permutation
【思路要点】若 m≠km\ne km̸=k ,则令 N=N−(k−m),k=mN=N-(k-m),k=mN=N−(k−m),k=m ,答案不变。考虑 m=km=km=k 的情况,对于一个集合对应的数组 bbb ,若 bk≠Nb_k\ne Nbk̸=N ,那么接下来出现的集合即为保留 bbb 数组的前 k−1k-1k−1 项,将 bkb_kbk 增加 111 ,这部分排列与其对应的接...原创 2019-02-26 12:55:58 · 193 阅读 · 0 评论 -
【校内训练2019-01-21】最后之道
【思路要点】考虑容斥,一个显然的做法是暴力枚举 (k2)\binom{k}{2}(2k) 对点是否相等,将所有相等的点并在一起,可以用简单 O(N∗k)O(N*k)O(N∗k) 的动态规划计算方案数,乘上容斥系数加入答案即可。可以发现,上述做法的动态规划部分的答案只与各个联通块的大小形成的可重集有关,有 O(f(k))O(f(k))O(f(k)) 种可能,其中 f(k)f(k)f(k) ...原创 2019-01-21 14:14:36 · 375 阅读 · 0 评论 -
【CodeForces】Hello 2019 (Div. 1 + Div. 2) 题解
【比赛链接】点击打开连接【题解链接】点击打开链接**【A】**Gennady and a Card Game【思路要点】按照题意模拟。时间复杂度 O(1)O(1)O(1) 。【代码】#include<bits/stdc++.h>using namespace std;const int MAXN = 2e5 + 5;typedef lo...原创 2019-01-09 13:01:13 · 957 阅读 · 2 评论 -
【校内训练2019-01-08】Art
【思路要点】首先,考虑一种朴素的暴力,枚举各树边是否选取,假设选取了 xxx 条边,树将分成 n−xn-xn−x 个部分,令各部分点数为 a1,a2,a3,...,an−xa_1,a_2,a_3,...,a_{n-x}a1,a2,a3,...,an−x ,可以用矩阵树定理求解答案。由该暴力解法,我们来思考一个子问题,若不考虑暴力解法中没有选取的边是否会出现在最终的生成树上,点数为 ...原创 2019-01-08 13:46:46 · 262 阅读 · 0 评论 -
【省内训练2018-12-23】String
【思路要点】考虑无问号的情况,分为两种:111 、 S=TS=TS=T ,那么 AAA 和 BBB 取任意字符串均可,贡献为 arbitrary=∑i=1N2i∑j=1N2jarbitrary=\sum_{i=1}^{N}2^i\sum_{j=1}^{N}2^jarbitrary=∑i=1N2i∑j=1N2j 。222 、 S≠TS\ne TS̸=T ,那么要求 AAA 和 BBB...原创 2018-12-23 17:47:10 · 320 阅读 · 0 评论 -
【省内训练2018-11-25】Decomposition
【思路要点】考虑计算每一个数的贡献,即枚举一个数 iii ,计算其在多少划分中出现过。计算数 iii 在多少划分中出现过可以使用容斥原理。则有 Ans=∑i=1N∑j=1M(−1)j−1(Mj)f(N−ij,M−j)Ans=\sum_{i=1}^{N}\sum_{j=1}^{M}(-1)^{j-1}\binom{M}{j}f(N-ij,M-j)Ans=∑i=1N∑j=1M(−1)j−...原创 2018-11-27 12:33:41 · 260 阅读 · 0 评论 -
【省内训练2018-11-23】Bishop
【思路要点】先考虑一个子问题,在 N∗NN*NN∗N 棋盘的主对角线及其右下方放置 KKK 个不能互相攻击的车,求方案数 f(N,k)f(N,k)f(N,k)。考虑最后一行的放置情况,有递推式 f(N,k)=f(N−1,k)+(N−k+1)∗f(N−1,k−1)f(N,k)=f(N-1,k)+(N-k+1)*f(N-1,k-1)f(N,k)=f(N−1,k)+(N−k+1)∗f(N−1,k−...原创 2018-11-24 17:02:24 · 368 阅读 · 3 评论 -
【CodeForces】Avito Code Challenge 2018 (Div. 1 + Div. 2) 题解
【比赛链接】点击打开连接【题解链接】点击打开链接**【A】**Antipalindrome【思路要点】当所有字符相同,答案为 000 。否则,若原串为回文串,删去其最后一个字符一定会使其变成非回文串,因此答案为 N−1N-1N−1 ,否则答案为 NNN 。时间复杂度 O(N)O(N)O(N) 。【代码】#include<bits/stdc++.h...原创 2018-10-25 19:56:20 · 423 阅读 · 0 评论 -
【校内训练2018-10-19】Gift
【思路要点】首先,若不存在 000 ,将 aia_iai 连向 bib_ibi 会形成一个置换,令该置换环的个数为 cntcntcnt ,交换步数即为 N−cntN-cntN−cnt ,因此,我们本质上需要计算形成 iii 个置换环的方案数 ansians_iansi 。题目中已经给出了图中的若干条边,它们会形成一些路径和一些环,对于已经形成的环,我们只需要在输出答案的时候考虑即可,...原创 2018-10-19 08:34:14 · 245 阅读 · 0 评论 -
【CodeChef】October Challenge 2018 (Div. 1 + Div. 2) 题解
【比赛链接】点击打开连接**【BBRICKS】**Beautiful Bricks【思路要点】上下两个砖块中,至多有一个黑色。连续的一段存在黑色的行共有两种放置的方案。枚举有几段连续的存在黑色的行,用组合数计算答案。单组数据时间复杂度 O(K)O(K)O(K) 。【代码】#include&amp;lt;bits/stdc++.h&amp;gt;using namespace ...原创 2018-10-21 10:46:08 · 535 阅读 · 0 评论 -
【LOJ6406】「ICPC World Finals 2018」绿宝石之岛
【题目链接】点击打开链接【思路要点】假设最后第 iii 个人多获得了 aia_iai 枚绿宝石,其中 ∑ai=d\sum a_i=d∑ai=d ,考虑这种情况发生的概率。总共的情况数为 (N−1+d)!(N−1)!\frac{(N-1+d)!}{(N-1)!}(N−1)!(N−1+d)! ,其中得到上述局面的情况数为 (∑ai))!∏ai!∗∏ai!=d!\frac{(\...原创 2019-03-23 11:33:40 · 886 阅读 · 0 评论 -
【AtCoder】ExaWizards 2019 题解
【比赛链接】点击打开链接【题解链接】点击打开链接**【A】**Regular Triangle【思路要点】判断是否 A=B=CA=B=CA=B=C 。时间复杂度 O(1)O(1)O(1) 。【代码】#include<bits/stdc++.h>using namespace std;const int MAXN = 2e5 + 5;ty...原创 2019-03-31 11:21:18 · 742 阅读 · 0 评论 -
【AtCoder】Tenka1 Programmer Contest 2019 题解
【比赛链接】点击打开链接【题解链接】点击打开链接【C】 Stones【思路要点】枚举最后的石子分布,用前缀和优化计算代价。时间复杂度 O(N)O(N)O(N) 。【代码】#include<bits/stdc++.h>using namespace std;const int MAXN = 2e5 + 5;typedef long lon...原创 2019-04-21 13:27:55 · 672 阅读 · 0 评论 -
【LOJ6240】仙人掌
【题目链接】点击打开链接【思路要点】记 xix_ixi 表示点 iii 被选中时,点 iii 所在的连通块共被操作了多少次,则有E(Ans)=E(∑i=1Nxi)=∑i=1NE(xi)E(Ans)=E(\sum_{i=1}^{N} x_i)=\sum_{i=1}^{N} E(x_i)E(Ans)=E(i=1∑Nxi)=i=1∑NE(xi)考虑计算 xix_ixi ...原创 2019-04-13 15:14:08 · 1155 阅读 · 0 评论 -
【LOJ6363】「地底蔷薇」
【题目链接】点击打开链接【思路要点】记 iii 个点任意图个数 abtiabt_iabti 的指数型生成函数为 Abt(x)Abt(x)Abt(x) ,连通图个数 conicon_iconi 的指数型生成函数为 Con(x)Con(x)Con(x) ,有根连通图个数 conriconr_iconri 的指数型生成函数为 Conr(x)Conr(x)Conr(x) ,点双联通...原创 2019-04-12 21:38:11 · 615 阅读 · 0 评论 -
【校内训练2019-04-09】Wsm
【思路要点】考虑合法序列 AAA 的性质:(1)(1)(1) 、 AAA 包含 000 。(2)(2)(2) 、若 0∼x−10\sim x-10∼x−1 均在 AAA 中,那么对于任意自然数 kkk , kx∼(k+1)x−1kx\sim (k+1)x-1kx∼(k+1)x−1 或是均在 AAA 中,或是均不在 AAA 中。(3)(3)(3) 、若 AAA 中次小的元素为 xxx ,...原创 2019-04-10 13:38:28 · 242 阅读 · 0 评论