AcWing 889. 满足条件的01序列(卡特兰数应用)

满足条件的01序列

假设长度为n个序列要求满足题意1的前缀0的个数不能超过1的个数
将问题抽象为从(0, 0)到(n, n)
向上走一个代表这一步对应序列中的值是1,向右走代表序列中的值是0
图来自番茄酱
要想满足1的前缀0的数量大于1的数量就需要满足所有路过的途径在y = x这个函数个下面
但是如何表达呢?
我们采用所有到(n, n)的方案的集合减去越过y = x + 1这个直线的方案集合
因为越过y = x + 1 这个直线的方案集合可以表示为从(0, 0)到(n - 1, n + 1){(n, n)关于 y = x + 1对称的点}的方案集合
而这个答案 C ( n 2 n ) − C ( n − 1 2 n ) C\binom{n}{2n} - C\binom{n - 1}{2n} C(2nn)C(2nn1)
= 2 n ! n ! ∗ n ! − 2 n ! ( n + 1 ) ! ( n − 1 ) ! = \frac{2n!}{n!*n!} - \frac{2n!}{(n + 1)!(n - 1)!} =n!n!2n!(n+1)!(n1)!2n!

= 2 n ! ∗ ( n + 1 ) n ! ∗ ( n + 1 ) ! − 2 n ! ∗ n n ! ∗ ( n + 1 ) ! = \frac{2n!*(n + 1)}{n! * (n + 1)!} - \frac{2n! * n}{n! * (n + 1)!} =n!(n+1)!2n!(n+1)n!(n+1)!2n!n

= 1 ( n + 1 ) 2 n ! n ! ∗ n ! = \frac{1}{(n + 1)} \frac{2n!}{n!*n!} =(n+1)1n!n!2n!
称为卡特兰数

= C ( n 2 n ) n + 1 = \frac{C\binom{n}{2n}}{n + 1} =n+1C(2nn)
2n是x的跨度和y的跨度的和

AcWing 889. 满足条件的01序列

#include <iostream>
#include <cstring>
#include <algorithm>using namespace std;
typedef long long LL;
const int mod = 1e9 + 7;
int n;int qmi(int a, int b, int c)
{int res = 1;while (b){if (b & 1) res = (LL) res * a % mod;a = (LL) a * a % mod;b >>= 1;}return res;
}int main()
{scanf("%d", &n);int x = 1, y = 1;for (int i = 1; i <= 2 * n; i ++) x = (LL)x * i % mod;for (int i = 1; i <= n; i ++) y = (LL)y * i % mod;//要注意除(n + 1) 也要求逆元因为后面还要% modprintf("%lld", (LL) x * qmi(y, mod - 2, mod) % mod * qmi(y, mod - 2, mod) % mod * qmi(n + 1, mod - 2, mod) % mod);return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/287148.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

添加ASP.NET网站资源文件夹

ASP.NET应用程序包含7个默认文件夹&#xff0c;分别为Bin、APP_Code、App_GlobalResources、App_LocalResources、App_WebReferences、App_Browsers和“主题”文件夹。每个文件夹都存放ASP.NET应用程序的不同类型的资源。 方法 说明Bin  包含程序所需的所有已编译程序集&#…

《看聊天记录都学不会Python到游戏实战?太菜了吧》(8)我们开始做一个数字小游戏吧

本系列文章将会以通俗易懂的对话方式进行教学&#xff0c;对话中将涵盖了新手在学习中的一般问题。此系列将会持续更新&#xff0c;包括别的语言以及实战都将使用对话的方式进行教学&#xff0c;基础编程语言教学适用于零基础小白&#xff0c;之后实战课程也将会逐步更新。 若…

Microsoft SQL Server 2019开发版安装配置教程

一、安装cn_sql_server_2019_developer_x64 双击setup.exe进行安转。 点击【安装】。 点击【全新SQL Server独立按住啊或向现有安装添加功能】。 点击【下一步】。

《看聊天记录都学不会C#?太菜了吧》(4)C# 中的尚方宝剑 “先斩后奏”

本系列文章将会以通俗易懂的对话方式进行教学&#xff0c;对话中将涵盖了新手在学习中的一般问题。此系列将会持续更新&#xff0c;包括别的语言以及实战都将使用对话的方式进行教学&#xff0c;基础编程语言教学适用于零基础小白&#xff0c;之后实战课程也将会逐步更新。 若…

如何用 Swift 语言构建一个自定控件

本文译自&#xff1a;How To Make a Custom Control in Swift 用户界面控件是所有应用程序重要的组成部分之一。它们以图形组件的方式呈现给用户&#xff0c;用户可以通过它们与应用程序进行交互。苹果提供了一套控件&#xff0c;例如 UITextField&#xff0c;UIButton&#xf…

《看聊天记录都学不会C#?太菜了吧》(5)C# 中可以用中文名变量?

本系列文章将会以通俗易懂的对话方式进行教学&#xff0c;对话中将涵盖了新手在学习中的一般问题。此系列将会持续更新&#xff0c;包括别的语言以及实战都将使用对话的方式进行教学&#xff0c;基础编程语言教学适用于零基础小白&#xff0c;之后实战课程也将会逐步更新。 若…

【ArcGIS遇上Python】ArcGIS Python中文编码问题案例详解

前面的文章《ArcGIS Python获取Shapefile矢量数据字段名称》我们已经学会了如何用 Python 获取中文路径下的shp数据的所有字段,英文没有问题,但是如果你输出中文路径下的数据字段, 就有可能会碰到中文编码问题。 Python 文件中如果未指定编码,在执行过程会出现报错: impo…

gRPC编码初探(java)

背景&#xff1a;gRPC是一个高性能、通用的开源RPC框架&#xff0c;其由Google主要面向移动应用开发并基于HTTP/2协议标准而设计&#xff0c;基于ProtoBuf(Protocol Buffers)序列化协议开发&#xff0c;且支持众多开发语言。gRPC提供了一种简单的方法来精确地定义服务和为iOS、…

WPF 基础控件之 RadioButton 样式

其他基础控件1.Window2.Button3.CheckBox4.ComboBox5.DataGrid 6.DatePicker7.Expander8.GroupBox9.ListBox10.ListView11.Menu12.PasswordBox13.TextBox14.ProgressBarRadioButton 实现下面的效果1&#xff09;RadioButton来实现动画&#xff1b;Border嵌套 Ellipse并设置Sca…

《看聊天记录都学不会C#?太菜了吧》(6)多晦涩的专业术语原来都会那么简单

本系列文章将会以通俗易懂的对话方式进行教学&#xff0c;对话中将涵盖了新手在学习中的一般问题。此系列将会持续更新&#xff0c;包括别的语言以及实战都将使用对话的方式进行教学&#xff0c;基础编程语言教学适用于零基础小白&#xff0c;之后实战课程也将会逐步更新。 若…

SQLServer2008-镜像数据库实施手册(双机)SQL-Server2014同样适用

SQL Server2008R2-镜像数据库实施手册(双机)SQL Server2014同样适用 一、配置主备机 1、 服务器基本信息 主机名称为&#xff1a;HOST_A&#xff0c;IP地址为&#xff1a;192.168.1.155 备机名称为&#xff1a;HOST_B&#xff0c;IP地址为&#xff1a;192.168.1.156 二、主备实…

一万字一篇文20分钟学会C语言和Python,十四年编程经验老鸟传授经验之道

前言 昨天在直播中有粉丝问我如何快速的对编程语言入门&#xff0c;我想这个问题是有必要让大家知道的&#xff0c;相必也有很多新手对于如何快速完成编程语言的入门学习很感兴趣&#xff0c;本篇文将会使用 C 语言以及 Python 为例&#xff0c;做出对比&#xff0c;让大家对编…

【Python可视化】Windows 10系统上Pyecharts安装教程

简单的Python库&#xff0c;如Numpy&#xff0c;可以直接在PyCharm中自动下载并安装。 同添加Python环境变量一样&#xff0c;需要先添加pip环境变量。pip位于C:\Python27\ArcGIS10.8\Scripts路径下。 WinR→cmd&#xff1a; 安装完成&#xff01;

使用.Net分析.Net达人挑战赛参与情况

背景C#是我2012年在大学课程中接触的&#xff0c;.NET Framework 我也一直使用至今。从2014年.NET 开源&#xff0c;2019年发布.NET Core 3 的时候&#xff0c;公司刚好有 Nvidia Jetson 平台 Linux 嵌入式设备的开发任务&#xff0c;.NET 又刚是适用于 Windows, Linux, 和 mac…

十分钟如何学会C语言?掌握规律举一反三考试提50分!

前言 上周写了一篇 20 分钟学会 C 语言与Python的文章——《一万字一篇文20分钟学会C语言和Python&#xff0c;十四年编程经验老鸟传授经验之道》&#xff0c;之后见粉丝转了一个话题“十分钟如何学会C语言”&#xff0c;我就在想是否能够十分钟呢&#xff1f;答案是可以的&am…

c语言在win8系统不兼容,Win8系统中存在不兼容软件如何解决?

最近有刚升级Win8系统的用户反映&#xff0c;FastStone Capture截图软件在Win7系统中可以兼容&#xff0c;正常打开&#xff0c;可是在Win8系统中就不能兼容了&#xff0c;这让用户非常烦恼。那么&#xff0c;Win8系统中存在不兼容软件如何解决呢&#xff1f;下面&#xff0c;我…

Python 3.6出现报错解决方案:No Python 3.6 installation was detected,无法卸载Python

卸载Python 3.6时错误提示&#xff0c;No Python 3.6 installation was detected。 解决办法是&#xff0c;先右键→更改→Repair。 然后再卸载&#xff0c;完成&#xff01;

MASA Auth - 权限设计

权限术语Subject&#xff1a;用户&#xff0c;用户组Action&#xff1a;对Object的操作&#xff0c;如增删改查等Object&#xff1a;权限作用的对象&#xff0c;也可以理解为资源Effect&#xff1a;规则的作用&#xff0c;如允许&#xff0c;拒绝Condition&#xff1a;生效条件…

【必懂】C语言水仙花数题解

若是大一学子或者是真心想学习刚入门的小伙伴可以私聊我&#xff0c;若你是真心学习可以送你书籍&#xff0c;指导你学习&#xff0c;给予你目标方向的学习路线&#xff0c;无套路&#xff0c;博客为证。 前言 本专栏内容将会以轻松、简单的方式完成习题的解答&#xff0c;用…

【ArcGIS风暴】ArcGIS 10.8中计算体积的方法总结

ArcGIS 10.8提供了表面体积和面体积两种计算体积的方法。 一、表面体积 用途:用于计算表面和参考平面之间区域的面积和体积。 Situation 1:参考面以上 Situation 2:参考面以下 Python脚本: import arcpy from arcpy import envarcpy.CheckOutExtension("3D")…