当前位置: 首页 > news >正文

洛谷 P8705:[蓝桥杯 2020 省 B1] 填空题之“试题 E :矩阵” ← 卡特兰数

【题目来源】
https://www.luogu.com.cn/problem/P8705

【题目描述】
1∼2020 放在 2×1010 的矩阵里。要求同一行中右边的比左边大,同一列中下边的比上边的大。一共有多少种方案?
答案很大,你只需要给出方案数除以 2020 的余数即可。

【答案提交】
这是一道结果
填空题,你只需要算出结果后提交即可。
本题的结果为一个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。

【算法分析】
● 卡特兰数(Catalan number)是
组合数学中一个常出现在各种计数问题中的数列。若从第 0 项开始,则卡特兰数列 h[n] 为:1, 1, 2, 5, 14, 42, 132, 429, 1430, 4862, 16796, 58786, 208012, 742900, 2674440, 9694845, 35357670, 129644790, …。

● 常用的卡特兰数列 h[n] 有如下 4 种等价的递推式
h[n]=
h[0]*h[n−1]+h[1]*h[n−2]+...+h[n−1]*h[0], (n≥2, h[0]=h[1]=1)
h[n]=h[n−1]*(4*n−2)/(n+1), (n≥2)
h[n]=C(2n,n)−C(2n,n−1), (n=0,1,2,...)
h[n]=C(2n,n)/(n+1), (n=0,1,2,...)

● 卡特兰数的第 20 项为 6564120420,大于 2×10^9,所以代码中要声明为
long long 型。

● 矩阵填充与进栈出栈过程的对应关系以及和卡特兰数的联系
(1)第一行填充对应
进栈:当我们从左到右填充矩阵的第一行时,每放入一个数字,就相当于一个元素进栈。因为第一行的数字是依次增大的,就好像元素依次进入栈中,且栈内元素是按照进栈顺序依次排列(从小到大)。
(2)第二行填充对应
出栈:当我们开始填充矩阵的第二行时,由于要满足同一列下边的数字比上边大,所以放入第二行的数字必须是已经在第一行出现过的数字,这就类似于元素出栈。

(3)可以将进栈(push)操作看作在平面直角坐标系中向沿 x 轴正向走一步,出栈(pop)操作看作沿 y 轴正向走一步。要完成 n 个元素的进栈和出栈操作,最终需要从原点(0,0)走到点(n,n)。但由于合法的进栈出栈序列要求在任何时刻出栈次数不超过进栈次数,所以对应的路径不能穿过直线 y=x,只能在直线 y=x 及其下方行走。最终,可得合法的出栈序列数就是卡特兰数的第 n 项:h[n]=h[0]*h[n−1]+h[1]*h[n−2]+...+h[n−1]*h[0], (n≥2, h[0]=h[1]=1)。

【算法代码】

#include<bits/stdc++.h>
using namespace std;const int maxn=2e5+5;
long long c[maxn];
int n;int main() {cin>>n; //n=1010c[0]=1,c[1]=1;for(int i=2; i<=n; i++) {for(int j=0; j<=i-1; j++) {c[i]+=c[j]*c[i-j-1];c[i]%=2020;}}cout<<c[n];return 0;
}/*
in:1010
out:1340
*/





【参考文献】
https://blog.csdn.net/hnjzsyjyj/article/details/145830268
https://blog.csdn.net/hnjzsyjyj/article/details/145842440
https://blog.csdn.net/hnjzsyjyj/article/details/129148916
https://www.acwing.com/file_system/file/content/whole/index/content/3766019/
 

相关文章:

洛谷 P8705:[蓝桥杯 2020 省 B1] 填空题之“试题 E :矩阵” ← 卡特兰数

【题目来源】 https://www.luogu.com.cn/problem/P8705 【题目描述】 把 1∼2020 放在 21010 的矩阵里。要求同一行中右边的比左边大&#xff0c;同一列中下边的比上边的大。一共有多少种方案? 答案很大&#xff0c;你只需要给出方案数除以 2020 的余数即可。 【答案提交】 …...

我的AI工具箱Tauri版-FluxCharacterGeneration参考图像生成人像手办(Flux 版)

本教程基于自研的AI工具箱Tauri版进行ComfyUI工作流FluxCharacterGeneration参考图像生成人像手办&#xff08;Flux 版&#xff09;。 我的AI工具箱Tauri版 - FluxCharacterGeneration参考图像生成人像手办&#xff08;Flux版&#xff09; 基于先进的FLUX模型&#xff0c;通过…...

DeepSeek开源周Day2:DeepEP - 专为 MoE 模型设计的超高效 GPU 通信库

项目地址&#xff1a;https://github.com/deepseek-ai/DeepEP 开源日历&#xff1a;2025-02-24起 每日9AM(北京时间)更新&#xff0c;持续五天 (2/5)&#xff01; ​ ​ 引言 在大模型训练中&#xff0c;混合专家模型&#xff08;Mixture-of-Experts, MoE&#xff09;因其动…...

51单片机-串口通信编程

串行口工作之前&#xff0c;应对其进行初始化&#xff0c;主要是设置产生波特率的定时器1、串行口控制盒中断控制。具体步骤如下&#xff1a; 确定T1的工作方式&#xff08;编程TMOD寄存器&#xff09;计算T1的初值&#xff0c;装载TH1\TL1启动T1&#xff08;编程TCON中的TR1位…...

python实现基于文心一言大模型的sql小工具

一、准备工作 注册与登录&#xff1a; 登录百度智能云千帆控制台&#xff0c;注册并登录您的账号。 创建千帆应用&#xff1a; 根据实际需求创建千帆应用。创建成功后&#xff0c;获取AppID、API Key、Secret Key等信息。如果已有千帆应用&#xff0c;可以直接查看已有应用的AP…...

deepseek 导出导入模型(docker)

前言 实现导出导入deepseek 模型。deepseek 安装docker下参考 docker 导出模型 实际生产环境建议使用docker-compose.yml进行布局&#xff0c;然后持久化ollama模型数据到本地参考 echo "start ollama" docker start ollama#压缩容器内文件夹&#xff0c;然后拷贝…...

前言:什么是大模型微调

一、大模型微调的基础知识 1. 什么是大模型微调&#xff1f; 大模型微调&#xff08;Fine-tuning&#xff09;是指在预训练模型的基础上&#xff0c;针对特定的任务或数据集进行进一步训练的过程。预训练模型通常在大规模的通用数据上训练&#xff0c;具备广泛的语言理解和生…...

TCPDF 任意文件读取漏洞:隐藏在 PDF 生成背后的危险

在网络安全的世界里&#xff0c;漏洞就像隐藏在黑暗中的“定时炸弹”&#xff0c;稍有不慎就会引发灾难性的后果。今天&#xff0c;我们要聊的是一个与 PDF 生成相关的漏洞——TCPDF 任意文件读取漏洞。这个漏洞可能让攻击者轻松读取服务器上的敏感文件&#xff0c;甚至获取整个…...

unity学习53:UI的子容器:面板panel

目录 1 UI的最底层容器&#xff1a;canvas 1.1 UI的最底层容器&#xff1a;canvas 1.2 UI的合理结构 2 UI的子容器&#xff1a;面板panel 2.1 创建panel 2.2 面板的本质&#xff1a; image &#xff0c;就是一个透明的图片&#xff0c;1个空容器 3 面板的属性 4 面板的…...

水环境水质在线监测系统解决方案

在当今社会&#xff0c;水资源作为人类生存和发展的基础性资源&#xff0c;其质量的优劣直接关系到生态平衡、人类健康以及社会经济的可持续发展。然而&#xff0c;随着工业化、城市化的快速推进&#xff0c;各类污染物不断排入水体&#xff0c;导致水环境面临严峻挑战。水环境…...

HBuilder X中,uni-app、js的延时操作及定时器

完整源码下载 https://download.csdn.net/download/luckyext/90430165 在HBuilder X中&#xff0c;uni-app、js的延时操作及定时器可以用setTimeout和setInterval这两个函数来实现。 1.setTimeout函数用于在指定的毫秒数后执行一次函数。 例如&#xff0c; 2秒后弹出一个提…...

BigDecimal线上异常解决方案:避免科学计数法输出的坑

文章目录 问题背景为什么BigDecimal会输出科学计数法&#xff1f;线上异常场景场景1&#xff1a;数据传递异常场景2&#xff1a;日志记录异常场景3&#xff1a;数据存储异常 解决方案1. 使用toPlainString()方法2. 设置格式化输出3. 自定义工具类 代码示例总结 在Java开发中&am…...

【C语言】指针笔试题

前言&#xff1a;上期我们介绍了sizeof与strlen的辨析以及sizeof&#xff0c;strlen相关的一些笔试题&#xff0c;这期我们主要来讲指针运算相关的一些笔试题&#xff0c;以此来巩固我们之前所学的指针运算&#xff01; 文章目录 一&#xff0c;指针笔试题1&#xff0c;题目一…...

深入理解Redis:数据类型、事务机制及其应用场景

在当今快速发展的技术领域中&#xff0c;Redis作为一种高性能的内存数据库&#xff0c;已经被广泛应用于各种场景&#xff0c;从简单的缓存实现到复杂的数据处理任务。其灵活性和高效性主要来源于对多种数据结构的支持以及强大的功能特性&#xff0c;如事务处理、持久化选项、高…...

RGMII(Reduced Gigabit Media Independent Interface)详解

一、RGMII的定义与作用 RGMII&#xff08;精简版千兆介质无关接口&#xff09;是一种用于千兆以太网&#xff08;1Gbps&#xff09;的高效接口标准&#xff0c;旨在减少传统GMII接口的引脚数量&#xff0c;同时保持相同的传输速率。其核心作用包括&#xff1a; 减少引脚数量&a…...

学习Flask:Day 1:基础搭建

学习目标&#xff1a;完成第一个Flask应用 # app.py from flask import Flask app Flask(__name__)app.route(/) def home():return <h1>Hello Flask!</h1>app.route(/api/greet/<name>) def greet(name):return {message: fHello {name}!}if __name__ __…...

XTOM工业级蓝光三维扫描仪在笔记本电脑背板模具全尺寸检测中的高效精准应用

——某3C精密制造企业模具优化与质量管控案例 镁合金具有密度小、强度高、耐腐蚀性好等优点&#xff0c;成为笔记本电脑外壳主流材料。冲压模具作为批量生产笔记本电脑镁合金背板的核心工具&#xff0c;其精度直接决定了产品的尺寸一致性、结构可靠性与外观品质。微米级模具误…...

网络安全 机器学习算法 计算机网络安全机制

&#xff08;一&#xff09;网络操作系统 安全 网络操作系统安全是整个网络系统安全的基础。操作系统安全机制主要包括访问控制和隔离控制。 访问控制系统一般包括主体、客体和安全访问政策 访问控制类型&#xff1a; 自主访问控制强制访问控制 访问控制措施&#xff1a; 入…...

分享些常用的工具类

一、照片 1、Unsplash&#xff1a;https://unsplash.com/ 2、pixabay&#xff1a;https://pixabay.com/zh/ 二、壁纸 1、Wallpaper Engine 2、wallhaven&#xff1a;https://wallhaven.cc/ 3、极简壁纸&#xff1a;https://bz.zzzmh.cn/ 三、AI语音 1、微软Azure项目&…...

VUE四:Vue-cli

什么是Vue-cli vue-cli是官方提供的一个脚手架,用于快速生成一个vue的项目模板; 预先定义好的目录结构及基础代码&#xff0c;就好比咱们在创建 Maven项目时可以选择创建一个骨架项目&#xff0c;这个骨架项目就是脚手架,我们的开发更加的快速; 什么是web pack 本质上&#…...

大模型环境下如何真正“提效”?别让AI成为“高级玩具”

引言 最近两年&#xff0c;大模型&#xff08;LLM&#xff09;火得不行&#xff0c;ChatGPT、Claude、文心一言……个个都号称能“颠覆工作方式”。但现实很骨感&#xff1a;很多人兴奋地装上各种AI工具&#xff0c;用了几周后发现——活儿没少干&#xff0c;时间没省下&#…...

2026最权威的十大AI辅助论文平台实测分析

Ai论文网站排名&#xff08;开题报告、文献综述、降aigc率、降重综合对比&#xff09; TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek DeepSeek系列论文系统地阐述大型语言模型技术架构、训练范式&#xff0c;核心创新涉及混合专…...

如何从源码编译安装ejabberd:构建高性能XMPP服务器的完整指南

如何从源码编译安装ejabberd&#xff1a;构建高性能XMPP服务器的完整指南 ejabberd是一款功能强大的开源即时通讯服务器&#xff0c;支持XMPP、MQTT和SIP协议&#xff0c;以其稳定性和可扩展性被广泛应用。本指南将带你完成从源码编译安装ejabberd的全过程&#xff0c;即使是新…...

前端性能优化新趋势:别再只盯着打包体积了

前端性能优化新趋势&#xff1a;别再只盯着打包体积了 什么是前端性能优化新趋势&#xff1f; 前端性能优化新趋势是指在前端开发中&#xff0c;随着技术的发展和浏览器的进步&#xff0c;出现的新的性能优化方法和策略。别以为前端性能优化只是压缩代码、减少打包体积&#xf…...

[嵌入式系统-256]:

为了让你在实际开发中不踩坑&#xff0c;下面把 小内存管理&#xff08;MEM&#xff09; 与 堆内存管理&#xff08;HEAP&#xff09; 的差异拆成“算法本质 运行表现 选型决策”三层&#xff0c;直击核心。&#x1f50d; 一句话区分MEM&#xff1a;“精挑细选&#xff0c;省…...

终极指南:3分钟快速定位Windows热键冲突的智能侦探工具

终极指南&#xff1a;3分钟快速定位Windows热键冲突的智能侦探工具 【免费下载链接】hotkey-detective A small program for investigating stolen key combinations under Windows 7 and later. 项目地址: https://gitcode.com/gh_mirrors/ho/hotkey-detective 你是否曾…...

第二周作业:系统管理相关的操作总结

一、系统信息与基础命令1. 查看系统信息uname -a # 完整系统信息cat /etc/os-release # 发行版信息hostname # 主机名uptime # 运行时间、负载date # 系统时间2. 硬件信息lscpu # CPUfree -h # 内存l…...

ZooKeeper启动报错排查指南:从JMX配置到dataDir路径修正

1. ZooKeeper启动报错&#xff1a;JMX与dataDir问题全景解析 第一次启动ZooKeeper时看到满屏红色报错&#xff0c;相信很多开发者都会心头一紧。最近在搭建Kafka集群时&#xff0c;我就遇到了经典的启动报错组合拳&#xff1a; ZooKeeper JMX enabled by default Using config:…...

专业数据恢复:如何轻松解密微信聊天记录的终极方案

专业数据恢复&#xff1a;如何轻松解密微信聊天记录的终极方案 【免费下载链接】WechatDecrypt 微信消息解密工具 项目地址: https://gitcode.com/gh_mirrors/we/WechatDecrypt 你是否曾因更换手机而丢失珍贵的微信聊天记录&#xff1f;或者需要找回重要的商务对话却无从…...

通义千问1.5-1.8B-Chat-GPTQ-Int4 STM32嵌入式开发问答:从选型到代码调试

通义千问1.5-1.8B-Chat-GPTQ-Int4 STM32嵌入式开发问答&#xff1a;从选型到代码调试 做STM32开发&#xff0c;你是不是也遇到过这些头疼事&#xff1f;选型时看着几十个型号眼花缭乱&#xff0c;写驱动时对着手册半天调不通一个I2C&#xff0c;调试时程序跑飞了却找不到原因。…...