洛谷P2638 安全系统

devtools/2025/2/7 0:02:07/

安全系统

题目描述

特斯拉公司的六位密码被轻松破解后,引发了人们对电动车的安全性能的怀疑。李华听闻后,自己设计了一套密码:

  • 假设安全系统中有 n n n 个储存区,每个储存区最多能存储存 2 2 2 种种类不同的信号(可以不储存任何信号)。有 0 0 0 1 1 1 这两种信号,其中 0 0 0 a a a 个, 1 1 1 b b b 个,单独一个 0 0 0 1 1 1 算一个信号。现要将这些信号储存在储存区中, 0 0 0 1 1 1 可以不用全部储存,一个储存区可以存放任意多个 0 0 0 和任意多个 1 1 1。一种不同的储存方案经过李华处理后就将是一串不同的密码。

现在给出 n , a , b n,a,b n,a,b,求可能的不同储存方案的个数。

输入格式

第一行:共 3 3 3 个整数, n , a , b n,a,b n,a,b

输出格式

第一行:一个整数,表示方案个数。

样例 #1

样例输入 #1

2 1 1

样例输出 #1

9

提示

所有 9 9 9 种方案如下:

储存区 1 1 1储存区 2 2 2
NULL \verb!NULL! NULL NULL \verb!NULL! NULL
0 0 0 NULL \verb!NULL! NULL
1 1 1 NULL \verb!NULL! NULL
NULL \verb!NULL! NULL 0 0 0
NULL \verb!NULL! NULL 1 1 1
0 , 1 0,1 0,1 NULL \verb!NULL! NULL
NULL \verb!NULL! NULL 0 , 1 0,1 0,1
1 1 1 0 0 0
0 0 0 1 1 1

对于全部数据, a , b ≤ 50 a,b\le 50 a,b50 n + a ≤ 50 n+a\le 50 n+a50 n + b ≤ 50 n+b\le 50 n+b50


upd 2022.10.22 \text{upd 2022.10.22} upd 2022.10.22:新增加一组 Hack 数据。

###### 解题心得:这道题我也想到了用组合数无奈实力有限不知道这么处理,跑去看了题解~~

题目分析:引用大佬题解

引用大佬题解
然后就是痛苦的高中组合数了,每次做这种题都很折磨!!! 本题用到了隔板法
在这里插入图片描述

注意:然后我们可以先用杨辉三角来算组合数,再来看一下数据范围。这里的组合数需要算到多大呢?容易看出最大总元素数(就是 C 的那个下标)是 n+max(a,b) - 1,因此需要用 unsigned long long来存数。

代码部分:

#include<bits/stdc++.h>
using namespace std;
typedef unsigned long long ULL;
const int N = 110;ULL c[N][N];
int n,a,b;
ULL ans;void Init()
{c[1][0] = 1,c[1][1] = 1;for(int i = 2; i < N; i++){c[i][0] = 1;for(int j = 1; j <= i; j++)c[i][j] = c[i - 1][j - 1] + c[i - 1][j];}
}int read()
{int s=0,f=1;char ch=getchar();while (ch<'0'||ch>'9'){if (ch=='-') f=-1;ch=getchar();}while (ch>='0'&&ch<='9'){s=s*10+ch-'0';ch=getchar();}return s*f;
}int main() {n = read(),a = read(),b = read();Init();for(int i = 0; i <= a; i++)for(int j = 0; j <= b; j++){ans += c[n + i - 1][n - 1] * c[n + j - 1][n - 1];}cout<<ans;return 0;
}

http://www.ppmy.cn/devtools/156649.html

相关文章

实现一个 LRU 风格的缓存类

实现一个缓存类 需求描述豆包解决思路&#xff1a;实现代码&#xff1a;优化11. std::list::remove 的时间复杂度问题2. 代码复用优化后的代码优化说明 优化21. 边界条件检查2. 异常处理3. 代码封装性4. 线程安全优化后的代码示例优化说明 DeepSeek&#xff08;深度思考R1&…

攻防世界 php2

你能验证这个网站吗&#xff1f; 根据提示是PHP&#xff0c;我们知道PHP代码在服务器端执行,可以连接数据库&#xff0c;查询数据&#xff0c;并根据查询结果动态生成网页内容。 PHP代码通常是保存在以.PHP为扩展名的文件上,这些文件存储在web 服务器的文档根目录中&#xff…

maven本地打包依赖无法引用

描述&#xff1a;写了一个RPC的starter包 执行命令后 mvn install 点击引入依赖无反应 手动输入对应的包显示找不到&#xff0c;但是在Maven可以找到 问题在于pom.xml文件&#xff0c;正常打包的maven文件应该可以显示出来&#xff0c;但是由于未删除spring-boot-maven-plug…

HTML 字符实体

HTML 字符实体 在HTML中,字符实体是一种特殊的表示方式,用于在文档中插入那些无法直接通过键盘输入的字符。字符实体在网页设计和文档编写中扮演着重要的角色,尤其是在处理特殊字符、符号和数学公式时。以下是关于HTML字符实体的详细解析。 字符实体概述 HTML字符实体是一…

20250202在Ubuntu22.04下使用Guvcview录像的时候降噪

20250202在Ubuntu22.04下使用Guvcview录像的时候降噪 2025/2/2 21:25 声卡&#xff1a;笔记本电脑的摄像头自带的【USB接口的】麦克风。没有外接3.5mm接口的耳机。 缘起&#xff1a;在安装Ubuntu18.04/20.04系统的笔记本电脑中直接使用Guvcview录像的时候底噪很大&#xff01; …

20250108慧能科技前端面试

目录 ajax 怎么取消请求移动端怎么实现 px 尺寸vite 和 webpack 的区别设计模式讲一下什么是原型链讲一下什么是闭包实现 eventbus事件循环项目发布后&#xff0c;如何对项目进行优化&#xff0c;怎么优化vue2 的 diff 算法和 vue3 的 diff 算法的区别 1. ajax 怎么取消请求 …

3 Spark SQL

Spark SQL 1. 数据分析方式2. SparkSQL 前世今生3. Hive 和 SparkSQL4. 数据分类和 SparkSQL 适用场景1) 结构化数据2) 半结构化数据3) 总结 5. Spark SQL 数据抽象1) DataFrame2) DataSet3) RDD、DataFrame、DataSet 的区别4) 总结 6. Spark SQL 应用1) 创建 DataFrame/DataSe…

后端生成二维码

QrConfig qrConfig new QrConfig(200, 200);private static void generateQrCode(QrConfig qrConfig, 你要塞入二维码的对象A a, 你要返回给前端的对象B b) {byte[] bytes QrCodeUtil.generatePng(A.getC(), qrConfig);// 转成base64String base64Png Base64.getEncoder().e…