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

P1722 矩阵 II

题目背景

usqwedf 改编系列题。

题目描述

如果你在百忙之中抽空看题,请自动跳到第六行。

众所周知,在中国古代算筹中,红为正,黑为负……

给定一个1×2n 的矩阵(usqwedf:这不是一个 2n 的队列么),现让你自由地放入红色算筹和黑色算筹,使矩阵平衡[即 ∀i∈[1,2n],1∼i 格中红色算筹个数大于等于黑色算筹]。

问有多少种方案满足矩阵平衡(注意红色算筹和黑色算筹的数量必须相等)。

输入格式

正整数 n。

输出格式

方案数 t 对 100取模后的结果。

输入输出样例

输入 

2

输出 

2

说明/提示

样例解释:

  • 方案一:红,黑,红,黑

  • 方案二:红,红,黑,黑

数据范围:

1≤n≤100

题解一(dp)

每次放都有两种选择,因此我们只需要一种颜色就可以求出答案

递推方程 dp[i][j]=dp[i-1][j]+dp[i-1][j-1];

代码实现

#include<iostream>
using namespace std;
const int N=510;
int s[N][N];        //前i个格子里放j个红色球 int main(){int n;cin>>n;s[1][1]=1;        //一个格子放一个球只有一种情况 for(int i=2;i<=n+n;i++){for(int j=(i+1)/2;j<=i;j++){   //红色格子的数必须大于等于总格子数的一半 s[i][j]=(s[i-1][j]+s[i-1][j-1])%100;}}cout<<s[2*n][n]<<endl;return 0;
}

解法二(卡特兰数)

#include<iostream>
using namespace std;
const int N=510;
int s[N];
int main(){int n;cin>>n;s[0]=s[1]=1;for(int i=2;i<=n;i++){for(int j=1;j<=i;j++){s[i]+=s[j-1]*s[i-j];s[i]%=100;}}cout<<s[n]<<endl;return 0;
}

http://www.lryc.cn/news/122472.html

相关文章:

  • 【数据结构】树和二叉树的概念及结构
  • 8.1.tensorRT高级(3)封装系列-模型编译过程封装,简化模型编译代码
  • 化工行业案例 | 甄知科技助力万华化学重构IT服务价值,打造信息中心ERP!
  • day6 STM32时钟与定时器
  • 【JavaEE进阶】SpringBoot 配置文件
  • ResNet创新点总结
  • Scratch 之 3D 介绍及教程
  • 最强自动化测试框架Playwright(19)- 事件
  • 静态网页和动态网页区别
  • 美国服务器有哪些类型?
  • 【基因检测人工智能】如何使用JAVASCRIPT在HTML文档内部增加一个段落
  • unittest单元测试
  • 每天一道leetcode:72. 编辑距离(动态规划困难)
  • 详细介绍如何使用 OpenCV 对图像进行锐化
  • Java代理模式——静态代理与动态代理
  • Vue day02 Computed和Watch
  • 【Java】一只小菜坤的编程题之旅【3】
  • 全面掌握 Jaeger 分布式调用链路跟踪理论和实战,Go 为所有使用 go-resty 库发起 HTTP 请求集成链路跟踪 jaeger(附源码)
  • vue键盘和鼠标事件
  • Chrome 手动代理设置 HTTP/Socks5
  • SpringBoot第35讲:SpringBoot集成连接池 - 默认连接池HikariCP
  • 选择最适合自己的笔记本
  • 前端安全:探秘安全 HTTP 头的设置
  • python爬虫——爬虫伪装和反“反爬”
  • vue3 使用 element-china-area-data 实现地区选择器
  • STM32自带的DSP库的滤波初体验(一)
  • go kratos protobuf 接收动态JSON数据
  • Python学习笔记第五十四天(Pandas DataFrame)
  • Docker镜像查看下载删除镜像文件的相关命令
  • 1. VisionOS平台介绍