1015&&1017模拟赛订正题解

1015

反正这两次的模拟赛都不太会写吧 感觉越来越dl 今天初赛 真好

T1

反正题目给你excatalan 提醒你是卡特兰数了 m=0 的情况 你发现就是卡特兰

那么考虑 m为任意数字的 方法 显然 我们需要知道卡特兰数的证明方法 其实昨天探讨的时候 想了更多方法 有必要解决这样的问题

首先证明方法有折线法 由折线法 我们不妨引出 另外一种证明思想

卡特兰数对应的 问题模型都是 在第K次执行 操作2的时候 操作1都是至少执行了K次 那么我们用x轴表示 当前的操作次数 一共需要2n次

然后把操作1当做 向上45走根号2步 操作2当成 向下45走根号2步 那么此时我们就能发现一条到达 (2n,0) 的折线

那么合法的方案数我们也能发现也就是 这个折线没有任意时刻 跨过x轴 那么我们考虑这个时候 用所有的方案数 减去 不合法的方案数

此时合法括号序列恰好对应我们寻找合法路径的方案数 那么所有的方案数对应$\binom{2n}{n}$

那么此时来考虑 怎么求所有不合法的方案数 我们记得 我们在求从(0,0)出发 向上 或者 向右 到达(n,n)

不跨过y=x 的方案数 我们是怎么求证的呢 我们画个图来探讨一下 我真不想画 截yxc神仙的b站上的 组合数学讲解

现在任意存在一个 不合法 的路径 那么我们找到第一次 跨过 这个直线的部分 到达另外一条直线 也就是图上 绿色 部分

我们此时将从这个点到后面的路径全部关于这个直线翻折过去

那么此时终点变成了 (n-1 n+1)那么所有不合法的路径就对应 所有从(0,0) 到达(n-1,n+1) 所有路径条数 那么方案数我们就显然知道了

此时我们回到上面的折线法 我们考虑 每次45度 这名方法 也是把第一次 跨过x轴 到达y=-1 这个直线的时候 K 之后K+1~2n 之间的路径 全部关于 y=-1 对称过来

不过是把y=x 这个基准线 变成x轴 然后把绿色的线

那么 终点变成了 (2n,-2) 此时操作1 比操作 少2 那么操作1 有n-1 操作2 有n+1 那么考虑 此时 就是2n 中选择 n-1 种的方案数  $\binom{2n}{n-1}$

那么不合法的方案数 也就是 至少一次不匹配的方案数 此时卡特兰数的 我们就证明了出来 有必要把这种翻折 寻找基准线的方法 理解一下。

此时$\binom{2n}{n}-\binom{2n}{n-1}$ 就是方案数  其实从这个时候 我们不妨思考一下 我们减去的就是对应的 至少一种不匹配的方案数

那么 我们考虑 如果是恰好m次不合法的方案数 那么 我们 可以转化成 至少m次不匹配的方案数 - 至少m+1次不匹配的方案数 其实对应到折线图上

我们此时把基准线变成y=-m 这个时候 我们求出来 按照 上述的方案数 此时 我们求出来 就是 至少m次 不合法的方案数

此时 cat(n,m)-cat(n,m+1) 此时 就是答案了 cat(n,m)=$\binom{2n}{n}-\binom{2n}{n-m-1} $

原文地址:https://www.cnblogs.com/Tyouchie/p/11702709.html

时间: 2024-10-20 08:10:45

1015&&1017模拟赛订正题解的相关文章

第四次模拟赛订正题解

这次考动态规划专练: 下一次考数据结构专练??? 坦白讲:这东西我还是不会: 现在发现好像是一个叫做树的最大独立集的: 有个暴力40分的做法,预处理所有的深度(层数),不是相邻层的累加,最后比较max,这个复杂度过不去,也只是贪心的思想,所以写完爆搜之后我还是去写了树形dp: 我们用dp[i][K]表示当前节点i选择(k==1)或不选择(k==0):而且比较巧妙地是,在统计方案树的是否,我们直接可以用当前k的表示该节点的方案,累加即可,好妙啊: 给出的题解: #include<bits/stdc

10 01模拟赛订正

好吧,这是我第一次写模拟赛的订正,主要是有时间而且这次的题确实好... 第一题确实好,用的算法人人都会,就是看你能不能想到,我考只打了O(n^4)的暴力,最后还苦逼的MLE,爆零了... 暴力就不多说了...枚举两个点更新其他的点... 其实我考场上思考的是,能被标记的点都与其他的点有什么联系,可惜,除了模拟题目的做法,就不会了... 那让我们就认真地思考一发:我们设A(x1,x2),B(x2,c2),C(x3,c3)来更新D点,只有:有两个点横坐标相等,有两个点纵坐标相等,才可以更新出来一个新

2019-09-03【高一组】模拟赛 3 &amp;【高二组】模拟赛 2 题解

计算题 1 $$\begin{align}ans_x&=\sum_{i=1}^n (w_i-w_x)^2\\&=\sum_{i=1}^n(w_i^2+w_x^2-2w_iw_x)\\&=\sum_{i=1}^{n}w_{i}^2+nw_x^2-2\sum_{i=1}^n{w_i}w_x\end{align}$$ 先在读的时候处理出 $\begin{align}\sum_{i=1}^{n}w_{i}^2\end{align}$ 和 $\begin{align}\sum_{i=1}^n

计蒜课 八月模拟赛题解

看见机房有大佬上周写了上面的普及信心赛 于是我康了康 8月的提高组模拟赛 9月的还没开始qwq 真的 有点难 主要是我先打开了T2 我再次 对自己的数学产生了怀疑 我现在还是不会写T2 T1 又又又又都错题了 下次重建图 尽量写vector 都写 邻接表 变量差不多的容易搞混 我这个同学变又写错了 T1 :https://nanti.jisuanke.com/t/41086 题目大意就是 一个有向图 删一个点 把与他直接和间接 相连的点 删掉 然后 求删掉所有点的最小最大代价 : 为了避免这个环

【题解】PAT团体程序设计天梯赛 - 模拟赛

由于本人愚笨,最后一题实在无力AC,于是只有前14题的题解Orz 总的来说,这次模拟赛的题目不算难,前14题基本上一眼就有思路,但是某些题写起来确实不太容易,编码复杂度有点高~ L1-1 N个数求和 设计一个分数类,重载加法运算符,注意要约分,用欧几里得算法求个最大公约数即可. 1 #include <cstdio> 2 3 long long abs(long long x) 4 { 5 return x < 0 ? -x : x; 6 } 7 8 long long gcd(long

10-4国庆节第七场模拟赛题解

10-4 国庆节第七场模拟赛题解 T1工厂 (factory) 水 #include<iostream> #include<cstdio> #define int long long using namespace std; inline int read(){ int sum=0,f=1; char ch=getchar(); while(ch<'0'||ch>'9'){ if(ch=='-')f=-1; ch=getchar(); } while(ch>='0

lzoi模拟赛题解

A题:签到题原题:mtoi 联赛 的A题定位:真.签到题(普及B题或者提高d1A题)考点:选手的基本数学能力思维难度:提高-代码难度:普及A题 题解:80%:暴力枚举100%:注意到(a xor b)<=(a+b),于是把所有的数异或起来即可. B题:送分题原题:[多省省队联测]d2A:皮配定位:一道联赛d1B题,考察了选手的基本功.送了选手70分.把70%的2种做法扩展可以得到正解考点:多种背包dp,计数思维难度:提高代码难度:提高+ 前面的几个数据可以暴力枚举解决.50%的数据:考虑dp.设

10月15日模拟赛题解

10月15日模拟赛题解 A 树 Description 给定一棵 \(n\) 个节点的树,每个节点有两个参数 \(a,~b\),对于每个节点,求子树中参数为 \(b\) 的所有节点的 \(a\) 之和 Limitations \(100\%\) \(1 \leq b \leq n \leq 10^5,~a \leq 1000\) \(60\%\) \(1 \leq b,n\leq 1000\) \(30\%\) \(1 \leq b, n \leq 10\) Solution 对于 \(30\%

题解 【重庆八中模拟赛】寻找代表元

[重庆八中模拟赛]寻找代表元 Description 八中一共有n个社团,分别用1到n编号.八中一共有m个人,分别用1到m编号.每个人可以参加一个或多个社团,也可以不参加任何社团.每个社团都需要选一个代表.我们希望更多的人能够成为代表.这里,每个人至多代表一个社团且每个社团至多有一个代表. Input 第一行输入两个数n和m.以下n行每行若干个数,这些数都是不超过m的正整数.其中第i行的数表示社团i的全部成员.每行用一个0结束. Output 输出最多的能够成为代表的人数. Sample Inp