计数类问题
文章平均质量分 63
ZLTJohn
这个作者很懒,什么都没留下…
展开
-
2020杭电多校第五场1012-Set1
题目大意分析求概率可以转化成计数,那么对于第i个位置,就是求有多少种方案数不会选到i,除以总方案数即可,总方案数很简单,就是(n-1)!!。假如我们把i剔除掉,断开的区间合并起来形成一个长度为n-1区间,那么这个区间有多少种合法方案数?显然是(n-2)!!。但真的有那么多方案不会选到i吗?考虑不会选到i的方案数长什么样子:设每次选取的两个数为(x,y),那么我们要保证所有的x都小于i。而很显然(n-2)!!里包含了x大于i的方案。观察到当i<n/2的时候,方案数肯定为0,而i>=n/2原创 2020-12-18 18:16:28 · 175 阅读 · 1 评论 -
prufer序学习小记+2020牛客暑期多校训练营(第七场)I Valuable Forests
prufer序与无根树的关系对于一颗带标号无根树,定义其prufer序为按照如下规则生成的序列:进行n-2步,对于第i步,选择度为1且编号最小的点x,将边的另一端点标号y作为序列的第i位,并删去x和边。若长度为n-2的序列a[1~n-2]满足:任意a[i]∈[1,n],那么该序列为某棵树对应的prufer序,可按照如下方法根据prufer序构造无根树,且该无根树对应的prufer序为a:设初始点集V={1…n},先进行n-2步:第i步取a[i],并在V-∪a[i~n-2]中取编号最小的元素x,为a[原创 2020-12-18 03:51:44 · 288 阅读 · 0 评论 -
2020牛客暑期多校第六场 A-African Sort
题目链接分析很显然,排列里形成的多个环肯定是每个环单独做。现在问题是对于一个环要怎么确定排序策略。如果每个数都要被涉及排序一次,那么可想而知,分开sort应该会比一起sort更糟糕,大胆猜想尝试。现在random_shuffle之后会得到新的排列,里面会形成一些小环,设大小为a[1~k],那么环大小变得更小了。设f[n]表示大小为n的环的期望代价。f[n]=∑a[](p(a[])∗∑if[ai])f[n]=\sum_{a[]}(p(a[])*\sum_i f[a_i])f[n]=a[]∑原创 2020-12-17 20:49:25 · 205 阅读 · 0 评论 -
2020小米网络赛第二场 F-Modulo Nine
题意F-Modulo Nine给定m个区间[li,ri],问带前导零的n位数,有多少个数满足:∀i,∏k=liriak%9==0 \forall i,\prod_{k=l_i}^{r_i}a_k \%9==0∀i,k=li∏riak%9==0其中a[k]表示这个数的第k位,n,m<=1000.分析思维方向有很多,比较靠谱的是逐位填数dp。一个区间要合法,只需要有2个3的因子即可,一个0、9算两个3的因子,3、6算一个。我们先不考虑填0、9,考虑只填3、6。那么一个位置的状态只有两种原创 2020-12-17 19:48:43 · 187 阅读 · 0 评论 -
整数拆分问题
第一种给定n,求把n拆分成若干个不相等的数的方案数。 设f[i][j]f[i][j]f[i][j]表示把j拆成i个数。 考虑要不要新添加一个数,并把之前的数全部加一。 f[i][j]=f[i−1][j−i]+f[i][j−i]f[i][j]=f[i−1][j−i]+f[i][j−i]f[i][j]=f[i-1][j-i]+f[i][j-i] 由于数不相等,数的个数不超过n−−√n\sq...原创 2018-05-03 15:45:09 · 750 阅读 · 0 评论 -
[agc023E]Inversions
题目大意给你一个大小为n的数组a[1..n]。 一个排列P[1..n]是合法的,当且仅当对于所有i=1~n,P[i]<=a[i]。 问你所有合法排列的逆序对个数。 n<=2e5。分析我们先考虑总合法排列数怎么算。 设cnt[i]表示a的值大于等于i的数量。 我们考虑从大到小填数,那么一个位置能够填了,之后也一定能够填,就没有后效性了。 数量就是∏i=1..ncn...原创 2018-05-04 19:40:33 · 1097 阅读 · 0 评论 -
[JSOI2018]扫地机器人
题目大意 T为数据组数解题思路实际上是一道打表题(逃 手玩会发现有很多不合法的情况,而且看起来合法的方案,(i,j)和(i+1,j-1)是一样的。 我们不妨把方案打出来看看。先考虑n=m。 会发现确定了第一行之后,以后每一行都是上一行往前轮换一个,也就是第一个移动到最后,第i个到i-1的位置。 n!=m怎么办呢?设d=gcd(n,m),会发现如果你决策了d*d这个矩阵,然...原创 2018-05-18 09:04:12 · 886 阅读 · 0 评论 -
[BZOJ3462]DZY Loves Math II
题目描述 2<=S<=2*10^6,1<=n<=10^18,1<=q<=10^5解题思路观察可得S的质因子的次幂不超过1,而且不超过6个,设有k个。 这让人浮想联翩。 设质因子pi选cipi选cip_i选c_i个计入拆分。 那么n=∑ipicin=∑ipicin=\sum_{i}p_ic_i。现在问题是n很大,我们不能直接做,而且有105...原创 2018-05-25 20:36:39 · 593 阅读 · 0 评论 -
[JZOJ5728]简单计数||
题目描述 解题思路乍一看不是很会。 先考虑不是环怎么做。 考虑分类地计数,即把方案归到某一类型里,再分别计算每一个类型的数量来求答案。 最终一种方案肯定有若干段相同颜色段,我们可以直接考虑每一种颜色的划分贡献,然后再算出他们组合起来的方案数。 具体地,我们计算出f(i,j)表示把i个相同的球分成j段的贡献和,一种方案贡献为每段大小乘积。然后,我们把同颜色的i个球缩成j个,然后...原创 2018-05-22 22:20:20 · 384 阅读 · 0 评论 -
[JZOJ5740] 幻想世界
题目描述 解题思路发现自己还是不会卷积。 考虑暴力的递推式:f[i][j]=(p∗f[i−1][j]+q∗f[i][j−1]+(p∗α+q∗β)f[i][j]=(p∗f[i−1][j]+q∗f[i][j−1]+(p∗α+q∗β)f[i][j]=(p*f[i-1][j]+q*f[i][j-1]+(p*\alpha+q*\beta),边界是f[0][j]=b[j]和f[i][0]=...原创 2018-05-23 21:30:48 · 421 阅读 · 1 评论 -
[agc023c]Painting Machines
题目大意有一排n个格子,每次可以对位置1~n-1进行染黑操作,在位置i操作会使i和i+1都变黑。 定义一个操作序列的得分:若前i-1次操作没有全部染黑而第i次染黑了,那么得分为i。 问1~n-1的所有排列的得分和。 模1e9+7 n<=1e6解题思路完全不会计数… 考虑设dp直接做,发现不行。 考虑一些别的方法。套路地转化一下统计的东西:∑p[1..n−1]p的得分=...原创 2018-05-09 09:51:44 · 421 阅读 · 0 评论 -
[矩阵树定理][prufer序][CF917D]Stranger Trees
题目描述给定一棵n个点组成的有标号的树T,我们定义两棵有标号的树的相似度为它们共有的边的个数。 现在我们想知道,n个点的完全图所有的有标号的生成树中,有多少棵树与T的相似度为 0,1,2 … n - 1,答案对10^9+7取模 对于20%的数据,n <= 6。 对于40%的数据,n <= 15。 对于另外20%的数据,T中存在一个度数为n - 1的点。 对于100%的数据...原创 2018-04-11 16:27:41 · 841 阅读 · 0 评论 -
[agc013e]Placing Squares
前言看到以为是整数拆分什么的搞了好久…题目大意给你一个n,你要计算所有序列(a[1]…a[x])的贡献和。 设s[i]表示序列前i个的前缀和,序列必须要满足: 1,s[x]=n; 2,给一个b[1..m],要求对于任意i,s[i]不能是b中的元素。 一个序列的贡献为所有元素平方的乘积。 (原本的问题是在一条1*n的纸带上段进行正方形底边完全覆盖) n<=1e9,m&l...原创 2018-02-19 16:57:31 · 540 阅读 · 0 评论 -
[UOJ NOI Round #2 Day1]黎明前的巧克力
题目大意给出n(n<=10^6)个在[0,10^6]内的整数a[1..n],现要求从中选出两个不相交的集合,使得这两个集合的各自的异或和相等,可以存在有的数没有被选择,集合可以为空,但是两个集合不可以同时为空。 问选出两个这样的集合的方案数。 部分分:n和a[]都在1e3范围内分析一道喜闻乐见的fwt机智题。 先考虑部分分怎么做。发现xor相等等价于两个集合xor和等于0。...原创 2018-03-01 16:02:33 · 328 阅读 · 0 评论 -
[agc013d] Pilling Up
题目大意有两种元素,一种0一种1,一开始,你可以随便拿01,总共拿n个。 然后你进行m次操作,每次操作先从手上拿一个元素,放在你的构造序列末尾,然后再获得0,1各一个,然后再放一次。 问最后有多少种不同的序列。 n,m<=3000解题思路一个很简单的想法是设f[i][j]表示做了第i轮,剩下j个0的时候,有多少种不同的序列。 然后根据题意转移。 但是如果直接把f[0...原创 2018-02-19 10:32:13 · 2004 阅读 · 0 评论 -
[arc064f]Rotated Palindromes
题目大意给你n,k。 构造一个数组a[1..n]。 满足他是一个回文串,且a[i]取值为1..K。 然后你可以把他旋转任意次,旋转一次就比如aaab变成aaba。设旋转后的数组为a’,问有多少个a’,对1e9+7取模。 n,K<=1e9解题思路考虑怎么才会重复。 如果a[]有一个per的周期,而且per|n,那么a[]旋转若干次后才会重复。 所以一个这样的a[]会贡献...原创 2018-02-23 18:42:55 · 261 阅读 · 0 评论 -
[arc068f]Solitaire
题目大意有一个双端队列,你从小到大加入1~N,可以放在队头或者队尾。加入完后,你再删除n次,每次可以删队头和队尾,按删除顺序把删除的数记为一个序列。而且要保证,序列第K位是1,问有多少种不同的序列。模1e9+7 N<=2000解题思路先考虑一个合法的加入序列。肯定是从大的数到1,然后从1到大的数的一个类似“山谷”的东西。 然后再考虑删除序列是怎样的。由于第K位是1,那么我们分...原创 2018-02-24 11:49:56 · 404 阅读 · 0 评论 -
[JZOJ5591]. 修修的铁拳
题目描述给出初始点(x0,y0),你可以走T步,每次上下左右,最终你会走到一个点(x,y),这个点的贡献是xnymxnymx^ny^m,问所有方案的贡献和。 解题思路考虑40分怎么做,可以枚举一个(x,y),算出到这里的方案数,然后乘上贡献。 另一个思路是dp地维护第i步的贡献和。 考虑某个方案往左右走,(x-1,y)+(x+1,y)的贡献,二项式展开((x+1)n+(x−1)n...原创 2018-03-16 21:41:09 · 383 阅读 · 0 评论 -
[agc009e]Eternal Average
题目大意给你n个0,m个1,和一个k。每次操作你选择k个数,擦去这k个数并加入他们的平均数(1个),问最后会有多少种不同的实数。 n,m,k<=2000,(k-1)|(n+m-1)解题思路转化一下题意。 考虑一种方案是一颗k叉树,给每个0和1安排深度,作为树的叶子节点,这些点的权值为0/1,其他点权值为所有儿子的平均数。问最后有多少种根节点权值不同的树。 现在问题稍微转...原创 2018-02-22 20:29:20 · 357 阅读 · 0 评论 -
[JZOJ4236] 登山
题目描述恶梦是一个登山爱好者,今天他来到了黄山。 俗话说的好,不走回头路。所以在黄山,你只能往前走,或者往上走。并且很显然的是,当你走到山脊的时候,你不能够往上走,你只能往前走一步再往上走。 抽象一点而言就是,你可以把黄山视为一个N * N格点图,恶梦从(0,0)开始出发,要走到(N,N)。当他走到位置(x,y)的时候,它可以往(x + 1,y),或(x,y+1)走。 并且当他走到(x,...原创 2018-04-10 16:34:00 · 582 阅读 · 0 评论 -
[JZOJ5608]Subset
题目大意对于 10% 的数据满足 n ≤ 20 对于 30% 的数据满足 n ≤ 2000 另有 20% 的数据满足 a i = b i 对于 100% 的数据满足 n ≤ 100000解题思路对于一个合法的三元组,我们发现S里有用的元素至多为3个,分别拥有a,b,c的最大值,甚至只有一个或两个元素。 发现如果只留下有用的元素,S和合法三元组一一对应,那么我们只需要统计最简S...原创 2018-03-28 21:14:42 · 316 阅读 · 0 评论 -
[JZOJ5550]卡常题
题目大意有k堆花,每堆都一样,一堆有m种花,每种有e[i]个,输入还会有个没用的c[i]表示颜色。设n=sum{e[i]}。 现在你从第0堆轮流采花,每次可以采任意种任意个,采了k-1继续采0,如果一堆的花全部采完,就停下来。现在问对于每堆花,在这里结束的采花方案。不同方案定义为存在某次采花的某种花采的数量不同。对985661441取模。每个测试点有T组数据。 n<=1e5,T<...原创 2018-02-26 20:17:13 · 555 阅读 · 0 评论