P10413 [蓝桥杯 2023 国 A] 圆上的连线

题意:

给定一个圆,圆上有 n=2023 个点从 1 到 n 依次编号。

问有多少种不同的连线方式,使得完全没有连线相交。当两个方案连线的数量不同或任何一个点连接的点在另一个方案中编号不同时,两个方案视为不同。

答案可能很大,请将答案对 2023 求余后提交。

思路:

首先是卡特兰数,然后没了,G32 卡特兰数_哔哩哔哩_bilibili,如果不理解,可以看这个视频,这道题其实就是视频中的拓展,加了个组合数选多少个点而已。

理解:    首先这个理解很可能有问题,如果你有更好的想法,请一定要在评论里告诉我,因为我现在都还是不太确定我的理解是否正确。

我看了很多关于卡特兰数的,看完之后感觉都像是感觉,没有一个确切的说怎么怎么样就是卡特兰数,因此我目前把卡特兰数归纳为
一个问题在任何子集情况下,违规操作的条件是不变动的,执行违规操作后,无论后面是什么样的,一定是错误,那么就是卡特兰数的使用范畴。
例如这道选点,违规操作就是不能选择穿越区间的点,无论你进行到哪一步怎么划分都是这个条件,即不能穿过上一条线选点。
如果是出入栈问题,那么无论你进行了多少步,只要出栈操作次数超过入栈那么就是错误,无论在哪个子集,哪一步,都是这个条件。
如果是二叉树,无论进行到哪一步,都不能连接已经连接过的点,这就是违规操作。
如果是连接顶点,无论到哪一步,都必须在选好一个节点去连新的边,只要不符合这个要求,就会错。
如果是斜线问题,无论到那一步,目前移动到的点不能超过斜边。
无论在哪个自己情况下,条件不能发生变动,他是固定的。不需要分情况讨论,无论在什么情况下都是一个要求,那就会是卡特兰数。
判断方式就是一道题的成功构造,是不是被一个固定条件限制住了,如果限制住,那很可能是卡特兰数。

请注意:该方法完全是类似于数学归纳法,看了一些之后自己想出来的一个方式,本人完全想不出数学或者说正经的方式,而网上大抵也没找到几个严格指出的,都是感觉,或者类比,但是本人思维理解不了是怎么归到一类的。比如这个圆圈选点跟斜线,我看不出相同点,所以自己思考归纳出来的这个相同点。非常不严格,请不要沿用这个方式。

说出这个归纳仅仅是希望后来有能力的人看到后,请来指正我,告诉我到底应该怎么思考更正确。
有参考:
1.
题解:P10413 [蓝桥杯 2023 国 A] 圆上的连线 - 洛谷专栏
2.「算法入门笔记」卡特兰数 - 知乎
个人认为2的想法非常好,很有说服力,但是我认为这个圆上选点,我很难联系到这个+1,-1,所以引出了这个自己的思考方法,其实跟+1,-1也挺像的……我只是觉得那个圆圈选点归纳到选栈真的有点异想天开的赶脚,有一点强行……

那么回到代码,非常简单,预处理组合数和卡特兰数,卡特兰数是一个递推公式,至于怎么推导出来的……我也不会。
组合数预处理方式是帕斯卡法则,这里顺带推荐一下用到这个性质的好题【补题】Codeforces Global Round 21 E. Placing Jinas-CSDN博客
组合数的累加、杨辉三角就可以往这个方向思考
代码:

#include<bits/stdc++.h>
using namespace std;
#define int long long
#define int128 __int128
#define endl '\n'
#define IOS ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);
const int N = 2e5+10;
const int INF = 1e18;
const int MOD = 2023;int C[2025][2025];
int H[2025];void solve(){int n=2023;for(int i=0;i<=2023;i++) C[i][0]=C[i][i]=1;for(int i=0;i<=2023;i++){for(int j=1;j<=i;j++){C[i][j]=(C[i-1][j]+C[i-1][j-1])%2023;}}H[0]=H[1]=1;for(int i=2;i<=2023;i++){for(int j=0;j<i;j++){H[i]=(H[i]+(H[j]*H[i-j-1]+MOD)%MOD)%MOD;}}int res=0;for(int i=0;i<=2023;i+=2){res=(res+(C[2023][i]*H[i/2]%MOD))%MOD;}cout << (res+MOD)%MOD << endl;
}signed main(){IOS;int t=1;
//	cin >> t;while(t--){solve();}
}

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

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

相关文章

鸿蒙5.0 非桌面页面,设备来电后挂断,自动返回桌面

1.背景 其实在Android上面打开一个应用,然后设备来电后挂断应该是返回到前面打开的这个应用的,但是在鸿蒙里面现象是直接返回桌面,设计如此 2.分析 这个分析需要前置知识,鸿蒙的任务栈页面栈,具体参考如下链接: zh-cn/application-dev/application-models/page-missio…

智能Todo协作系统开发日志(二):架构优化与安全增强

&#x1f4c5; 2025年4月14日 | 作者&#xff1a;Aphelios380 &#x1f31f; 今日优化目标 在原Todo单机版基础上进行三大核心升级&#xff1a; 组件化架构改造 - 提升代码可维护性 本地数据加密存储 - 增强隐私安全性 无障碍访问支持 - 践行W3C标准 一、组件化架构改造 …

linux电源管理(二),内核的CPUFreq(DVFS)和ARM的SCPI

更多linux系统电源管理相关的内容请看&#xff1a;https://blog.csdn.net/u010936265/article/details/146436725?spm1011.2415.3001.5331 1 简介 CPUFreq子系统位于drivers/cpufreq目录下&#xff0c;负责进行运行过程中CPU频率和电压的动态调整&#xff0c;即DVFS (Dynami…

mysql 数据库localhost密码忘记

使用此查询语句&#xff1a; SELECT user, authentication_string FROM mysql.user WHERE user root; 复制对应的密码&#xff1a; 密码是通过md5加密后的 md5在线解密破解,md5解密加密 将密码输入进来 就可以直接破解了

05、Docker run命令实战:数据卷与挂载的完整指南(下)

5.1、深度剖析 docker run 命令:原理阐释与数据持久化实践探究 1、更换国内yum源2、更换国内docker源3、卸载旧版docker4、docker安装5、镜像加速器6、镜像下载7、docker run命令交互式启动-it非交互式后台运行其他参数mysql综合案例8、持久化存储目录挂载数据卷挂载数据同步1…

macOS 上使用 Homebrew 安装和配置 frp 客户端

macOS 上使用 Homebrew 安装和配置 frp 客户端 (frpc) 指南 frp (Fast Reverse Proxy) 是一款高性能的反向代理应用&#xff0c;常用于内网穿透。本文将介绍在 macOS 上使用 Homebrew 安装 frpc&#xff0c;并进行配置和管理。 一、安装 frpc 使用 Homebrew 安装&#xff08;…

泊松分布详解:从理论基础到实际应用的全面剖析

泊松分布详解&#xff1a;从理论基础到实际应用的全面剖析 目录 引言&#xff1a;事件的罕见性与随机计数泊松分布的历史源流泊松分布的数学定义与性质 概率质量函数 (PMF)累积分布函数 (CDF)期望、方差与其他矩矩生成函数 (MGF) 与特征函数 (CF) 泊松分布的严格推导 极限推导…

红宝书第三十六讲:持续集成(CI)配置入门指南

红宝书第三十六讲&#xff1a;持续集成&#xff08;CI&#xff09;配置入门指南 资料取自《JavaScript高级程序设计&#xff08;第5版&#xff09;》。 查看总目录&#xff1a;红宝书学习大纲 一、什么是持续集成&#xff1f; 持续集成&#xff08;CI&#xff09;就像咖啡厅的…

python 办公自动化------ excel文件的操作,读取、写入

一、excel文件的读取 需要安装的包&#xff1a;xlrd&#xff1a;读取&#xff1b;xlwt&#xff1a;写入&#xff1b;xlutils&#xff1a;分割、复制、筛选 sudo&#xff1a;表示以管理员身份运行命令&#xff08;mac系统中使用&#xff09; >sudo pip install xlrd xlwt x…

JAVA Web_定义Servlet2_学生登录验证Servlet

题目 页面StudentLogin.html中有一HTML的表单代码如下&#xff1a; <form action"studentLogin" method"post">学生姓名&#xff1a;<input type"text" name"stuName" value""><br>登录密码&#xff1a;…

爬虫: 一文掌握 pycurl 的详细使用(更接近底层,性能更高)

更多内容请见: 爬虫和逆向教程-专栏介绍和目录 文章目录 一、PycURL概述1.1 PycURL介绍1.2 基本安装1.3 安装依赖(Linux/macOS)1.4 常用选项参考二、基本使用2.1 简单 GET 请求2.2 获取响应信息2.3 设置请求头2.4 超时设置2.5 跟随重定向三、高级功能3.1 POST 请求3.2 文件上…

利用 限制torch线程数与异步方法提升声纹识别效率

引言 声纹识别作为生物识别技术的重要分支,在安防、金融、智能助手等领域应用广泛。随着数据量的增长和应用场景的复杂化,提高声纹识别效率成为关键问题。本文将详细介绍如何通过 torch.set_num_threads 以及异步方法来优化声纹识别的性能。 声纹识别效率瓶颈分析 在声纹…

软考高级系统架构设计师-第12章 系统质量属性与架构评估

【本章学习建议】 根据考试大纲&#xff0c;本章不仅考查系统架构设计师单选题&#xff0c;预计考11分左右&#xff0c;而且案例分析和论文写作也是必考&#xff0c;对应第二版教材第8章&#xff0c;属于重点学习的章节。 12.1 软件系统质量属性 12.1.1 质量属性概念 软件系…

SecProxy - 自动化安全协同平台

本人为甲方安全人员&#xff0c;从事甲方工作近6年&#xff1b;针对在甲方平时安全工作的一些重复、复杂、难点的工作&#xff0c;思考如何通过AI、脚本、或者工具实现智能且自动化&#xff0c;于是花平时空闲时间准备将这些能力全部集中到一个平台&#xff0c;于是有了这个东西…

CSI-external-provisioner

main() 这段Go代码是一个CSI&#xff08;容器存储接口&#xff09;Provisioner&#xff08;供应器&#xff09;的实现&#xff0c;用于在Kubernetes集群中动态提供持久卷。代码涉及多个组件和步骤&#xff0c;下面是对关键部分的解释&#xff1a; 初始化和配置 命令行标志和…

react中通过 EventEmitter 在组件间传递状态

要在 Reply 组件中通过 statusChangeEvent 发送状态值&#xff0c;并在 Select 组件中接收这个状态值 status&#xff0c;你可以按照以下步骤实现&#xff1a; //Event.jsimport EventEmitter from events;export const statusChangeEvent new EventEmitter();// 工单状态切换…

1534. 统计好三元组

1534. 统计好三元组 - 力扣&#xff08;LeetCode&#xff09; 给你一个整数数组 arr &#xff0c;以及 a、b 、c 三个整数。请你统计其中好三元组的数量。 如果三元组 (arr[i], arr[j], arr[k]) 满足下列全部条件&#xff0c;则认为它是一个 好三元组 。 0 < i < j &l…

如何配置AWS EKS自动扩展组:实现高效弹性伸缩

本文详细讲解如何在AWS EKS中配置节点组&#xff08;Node Group&#xff09;和Pod的自动扩展&#xff0c;优化资源利用率并保障应用高可用。 一、准备工作 工具安装 安装并配置AWS CLI 安装eksctl&#xff08;EKS管理工具&#xff09; 安装kubectl&#xff08;Kubernetes命令…

FPGA_UART

1.UART 概述 &#xff08;通用异步收发传输器&#xff09; 1. 基本定义 UART&#xff08;Universal Asynchronous Receiver/Transmitter&#xff09;是一种常见的串行通信协议&#xff0c;用于在设备间通过异步串行通信传输数据。它不依赖独立的时钟信号&#xff0c;而是通过预…

openwrt软路由配置4--文件共享

1.安装samba opkg update opkg install luci-app-samba4安装好之后重启设备&#xff0c;系统界面服务下面会多一个network shares 2.创建磁盘分区并挂载到共享目录 openwrt刚刚安装的时候空间都是很小的&#xff0c;共享目录我是打算用来存放一些电影视频之类的大文件。所以我…