题目 1163: 排队买票

排队购票问题分析与解决 问题描述:           售票工作正在进行,每张票为50元,现在有m+n人排队等待购票,其中有m人手持50元,n人手持100元,假设售票处不设找零,那么若想使售票处不会出现找不开零钱的局面,请你帮忙设计不同的排队方案。特别说明的是,拿同样面值的人对换位置为同一种方案。 算法分析: 一:n=0; 那么说明买票的人都是手持50元,所以不会出现找不开零钱的局面,所以这是一种排队方案; 二 阅读详情

题目描述

题目描述
有M个小孩到公园玩,门票是1元。其中N个小孩带的钱为1元,K个小孩带的钱为2元。售票员没有零钱,问这些小孩共有多少种排队方法,使得售票员总能找得开零钱。注意:两个拿一元零钱的小孩,他们的位置互换,也算是一种新的排法。(M<=10)

输入
输入一行,M,N,K(其中M=N+K,M<=10).

输出
输出一行,总的排队方案。

样例输入
4 2 2
样例输出
8

思路:

我开始做的时候有些不理解,网上的大部分题解是关于卡特兰数的(不用说,我看不懂hah)

然后我就在想这个问题,起初我想用回溯法插入元素,不过最后放弃了,太复杂了。

然后我就想这个排队是什么时候是合法的,很好想出来,就是每个2前面至少对应着一个1。话虽如此但我们如何检验?我起初想暴力解决但实现起来思路比较复杂,而且时间复杂度高。

然后我突然想到了多数元素的摩尔投票法,然后我就想到了用一个num记录,num如果有1就++,有2就–,如果过程中num<0则证明存在有一个2没有一个1对应。

但是到此为止还没有结束,我想的是判断类似1122的所有全排列包括重复的。(这种应该可以回溯写出来,但是感觉还是比较复杂的),然后我就改成初始前面的1为0K-1,后面的2为KN-1 所以小于K的就相当于是1了,大于K的就相当于是2了。对于这种0123的序列我们可以直接使用next_permutation();

参考ac题解

#include <iostream>
#include <algorithm>
using namespace std;
int N, K, M;

int main() {
	while (cin >> N >> K >> M) {
		int a[N], res = 0;
		for (int i=0; i<K; i++) {
			a[i] = i;
		}
		for (int i=K; i<N; i++) {
			a[i] = i;
		}
		do {
			int flag = 0;
			// check每个全排列, num务必要初始化 
			int num = 0;
			for (int i=0; i<N; i++) {
				if (a[i] >= K) {
					num--;
				} else {
					num++;
				}
				if (num < 0) {
					flag = 1;
					break;
				}
			}
			if (flag == 0) {
//				for (int i=0; i<N; i++) {
//					cout << a[i];
//				}
//				cout << "\n";
				res++;
			}
			
		} while (next_permutation(a,a+N));
	
	
		cout << res << "\n";
	}
	return 0;
}

思路可能不成熟,如有错误,还望指正

好久没写题解了!有点衰了,加油呀大家

Python实战:5分钟搞定固定翼无人机三自由度仿真(附完整代码) 本文提供了一个基于Python的固定翼无人机三自由度仿真快速实现方案。通过面向对象设计,封装了核心运动学模型,并对比了欧拉法与龙格-库塔法两种积分方法。文章附有完整实例代码,帮助算法工程师和研究人员在5分钟内搭建轻量级仿真环境,用于快速验证控制律、路径规划等核心算法逻辑。 阅读详情

相关推荐

A robust and easy to implement method for IMU calibration without external equipments(IMU标定)

A robust and easy to implement method for IMU calibration without external equipments 1 标定原理1 亲试可用,还有动态演示效果不错。相比商用产品的简易标定流程,该标定方法有以下几点不同: 给出了加速度计和陀螺仪更复杂的模型。 利用Allan方差的定义,标定陀螺仪的偏置。 大量冗余数据,保证最优化收敛。利用数十...

擦擦擦大侠的博客 3948

每天一道C语言编程:排队买票

其中N个小孩带的钱为1元,K个小孩带的钱为2元。注意:两个拿一元零钱的小孩,他们的位置互换,也算是一种新的排法。这里初始前面的1为0~K-1,后面的2为K~N-1 所以小于K的就相当于是1了,大于K的就相当于是2了,为了方便使用next_permutation()由于题目中说小孩交换位置算一种新的排队方式,所以还要再乘上 n 的全排列(乘两遍:N个小孩带的钱为1元,另外N个小孩带的钱为2元),即。第一部分可以使用卡特兰公式进行运算,即,其中p在0~k范围内,但不能为K,因为第二部分必须为K中的一部分。

weixin_69884785的博客 5400

(UE4 4.27) HISM性能优化:从空间剔除到合批渲染的实战解析

本文深入解析了UE4 4.27中HISM(UHierarchicalInstancedStaticMesh)组件的性能优化原理与实战技巧。核心在于利用其N叉树空间结构实现高效的CPU视锥剔除,并结合GPU实例化进行合批渲染。文章详细探讨了从控制叶子节点粒度、平衡剔除精度与渲染效率,到结合LOD系统等关键参数的调优方法,为开放世界或大场景的植被性能瓶颈提供了系统解决方案。

weixin_29015051的博客 327

问题 1163: 【排队买票】

时间限制: 1Sec 内存限制: 128MB 提交: 484 解决: 199 题目描述 有M个小孩到公园玩,门票是1元。其中N个小孩带的钱为1元,K个小孩带的钱为2元。售票员没有零钱,问这些小孩共有多少种排队方法,使得售票员总能找得开零钱。注意:两个拿一元零钱的小孩,他们的位置互换,也算是一种新的排法。(M<=10) 输入 输入一行,M,N,K(其中M=N+K,M<=10). ...

WhileTrue 651

【汽车ECU电控数据管理篇】A2L文件在ECU标定中的关键作用与实战解析

本文深入解析A2L文件在汽车ECU标定中的关键作用,详细介绍了其作为'数据字典'的核心功能与实战应用。通过剖析A2L文件的结构、关键标签及常见问题,帮助工程师高效管理电控数据,提升ECU标定效率与准确性。文章特别强调了ASAP2标准下的A2L文件在汽车电控系统中的重要性。

a3b4c5的博客 787

AI原生应用API编排:如何实现高效的权限管理?

随着GPT-4、Claude 3等大模型的普及,AI原生应用(从设计之初就以AI为核心的应用)正从“概念”走向“落地”。依赖大量外部API的协同工作(如用户身份API→大模型生成API→支付API→存储API)。但随之而来的挑战是:如何在复杂的API调用链中,确保每个环节的权限合规?本文将聚焦这一问题,覆盖API编排的基础逻辑、权限管理的核心机制(如RBAC/ABAC)、实战工具链(如OPA策略引擎),以及常见场景的解决方案。本文将按照“场景引入→核心概念→原理拆解→实战演练→趋势展望”的逻辑展开。

大数据洞察的博客 451

【排队买票】

题目描述:http://115.28.203.224/problem.php?cid=1011&pid=6 题目描述 有M个小孩到公园玩,门票是1元。其中N个小孩带的钱为1元,K个小孩带的钱为2元。售票员没有零钱,问这些小孩共有多少种排队方法,使得售票员总能找得开零钱。注意:两个拿一元零钱的小孩,他们的位置互换,也算是一种新的排法。(M 输入 输入一行,M,N,K(其中M=N+K,M

Graph86 731

基于Scrapy+Playwright的学术会议信息智能爬取系统实战

本文详细介绍如何使用Python构建一个高效的学术会议信息爬取系统,结合Scrapy框架和Playwright无头浏览器技术,实现对全球学术会议数据的自动化采集、清洗和存储。文章包含完整的技术方案设计、代码实现细节以及性能优化策略,可帮助读者快速掌握现代网络爬虫开发的核心技术。关键词:Python爬虫、Scrapy、Playwright、学术会议、数据采集、反爬对抗python复制下载。

2201_76125261的博客 710

ACM 排队买票

问题 1163: 【排队买票】 问题描述 有M个小孩到公园玩,门票是1元。其中N个小孩带的钱为1元,K个小孩带的钱为2元。售票员没有零钱,问这些小孩共有多少种排队方法,使得售票员总能找得开零钱。注意:两个拿一元零钱的小孩,他们的位置互换,也算是一种新的排法。(M<=10) 输入 输入一行,M,N,K(其中M=N+K,M<=10). 输出 输出一行,总的排队方案。 样例输入 4 2 2 ...

建希的博客 558

如何配置SSC CANopen的excel文件

如何配置 CANOpen 的 EXCEL 文件

PI_sunyang的博客 3698

Python爬虫实战:手把手教你如何抓取农作物品种名录,构建标准化种业索引数据库!

我长期专注 Python 爬虫工程化实战,主理专栏 《Python爬虫实战》:从采集策略到反爬对抗,从数据清洗到分布式调度,持续输出可复用的方法论与可落地案例。内容主打一个“能跑、能用、能扩展”,让数据价值真正做到——抓得到、洗得净、用得上。

喵手的博客 290

问题: 【排队买票】

题目描述 有M个小孩到公园玩,门票是1元。其中N个小孩带的钱为1元,K个小孩带的钱为2元。售票员没有零钱,问这些小孩共有多少种排队方法,使得售票员总能找得开零钱。注意:两个拿一元零钱的小孩,他们的位置互换,也算是一种新的排法。(M<=10) 输入 输入一行,M,N,K(其中M=N+K,M<=10). 输出 输出一行,总的排队方案。 样例输入 4 2 2 样例输出 8 首...

enjoy_code_的博客 988

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

问题 1163: 【排队买票】(全排列)

问题 1163: 【排队买票】题目链接 题目描述 有M个小孩到公园玩,门票是1元。其中N个小孩带的钱为1元,K个小孩带的钱为2元。售票员没有零钱,问这些小孩共有多少种排队方法,使得售票员总能找得开零钱。注意:两个拿一元零钱的小孩,他们的位置互换,也算是一种新的排法。(M<=10) 输入 输入一行,M,N,K(其中M=N+K,M<=10). 输出 输出一行,总的排队方案。 样例输入 4 ...

Shaosen的博客 1186

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

问题 1163: 【排队买票】【数组模拟二进制】

题目来源:C语言网

我佛很悲 286

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

1163 排队买票

题目描述: 有M个小孩到公园玩,门票是1元。其中N个小孩带的钱为1元,K个小孩带的钱为2元。售票员没有零钱,问这些小孩共有多少种排队方法,使得售票员总能找得开零钱。注意:两个拿一元零钱的小孩,他们的位置互换,也算是一种新的排法。(M<=10) 输入 输入一行,M,N,K(其中M=N+K,M<=10). 输出 输出一行,总的排队方案。 样例输入 4 2 2 样例输出 8 My Answer Code: /* Author:Albert Tesla Wizard Time:2021/8/4 23

AlberTesla的博客 187

蓝桥杯训练题(1163)

题目 1163: 解释:有M个小孩到公园玩,门票是1元。其中N个小孩带的钱为1元,K个小孩带的钱为2元。售票员没有零钱,问这些小孩共有多少种排队方法,使得售票员总能找得开零钱。注意:两个拿一元零钱的小孩,他们的位置互换,也算是一种新的排法。(M<=10),输出一行,总的排队方案。 解释:malloc的用法: 指针=(类型指针)malloc(创建的大小*sizeof(类型)) ,用途:创建一个动态内存用来灵活存放数据。

2401_88534561的博客 280

ACM训练【排队买票】 (C语言描述 递归 5ms 过 简单易懂)--------C语言——菜鸟级

/*问题 1163: 【排队买票】 时间限制: 1Sec 内存限制: 128MB 提交: 145 解决: 70 题目描述 有M个小孩到公园玩,门票是1元。其中N个小孩带的钱为1元,K个小孩带的钱为2元。 售票员没有零钱,问这些小孩共有多少种排队方法,使得售票员总能找得开零钱。 注意:两个拿一元零钱的小孩,他们的位置互换,也算是一种新的排法。(M&amp;amp;amp;amp;amp;lt;=10) 输入 输入一行,M,N...

Five—菜鸟级的博客 2951

寒假杂题练习

(小根堆+多路归并)(自定义排序+打表优化时间复杂度)(推公式优化时间复杂度+前缀和)(贪心+多路归并证明+等差数列)(合并石子 枚举+构造)(乘法原理+构造+枚举)(排序不等式,反哈夫曼)(模拟+找规律推公式)(反悔贪心+小根堆)

Mustan_的博客 206

算法——深度优先搜索(DFS)、 递归

常用于求排列组合、遍历等问题

生命的痕迹 1619

经典例题 排队买票

卡特兰链接 题目描述 有M个小孩到公园玩,门票是1元。其中N个小孩带的钱为1元,K个小孩带的钱为2元。售票员没有零钱,问这些小孩共有多少种排队方法,使得售票员总能找得开零钱。注意:两个拿一元零钱的小孩,他们的位置互换,也算是一种新的排法。(M<=10)输入 输入一行,M,N,K(其中M=N+K,M<=10).输出 输出一行,总的排队方案。样例输入 4 2 2 样例输出 8这题貌似是Ca

a568283992的博客 5858

算法笔记四 排队买票

算法笔记四 排队买票题干思路解法一解法二(转载自https://blog.dotcpp.com/a/64305)解法三 递归 题干 描述 有M个小孩到公园玩,门票是1元。其中N个小孩带的钱为1元硬币,K个小孩带的钱为2元纸币,而售票员没有零钱。问这些小孩共有多少种排队方法,使得售票员总能找得开零钱。注意:两个小孩,他们的位置互换,也算是一种新的排法。 输入 输入一行,M,N,K(其中M=N+K...

对象被抛出的博客 2465

入门小孩

 刚学走路的孩子

紫韵 465

分治-排队购票问题

一场球赛开始前,售票工作正在紧张的进行中。每张球票为50元,现有30个人排队等待购票,其中有20 个人手持50元的钞票,另外10个人手持100元的钞票。假设开始售票时售票处没有零钱,求出这30个人排队购票,使售票处不至出现找不开钱的局面的不同排队种数。(特别说明的是:拿同样面值钞票的人对换位置后为同一种排队。

qq_63525443的博客 391

【蓝桥第三周】排队购票问题

排队购票问题 问题描述     一场球赛开始前,售票工作紧张进行。每张球票50元,现有很多人排队购票,其中m个人手持50元钞票,n个人手持100元钞票。假设售票处没有零钱,求这些人购票时,售票处不至于找不开钱的不同排队总数。(约定:拿同样面值钞票的人兑换位置也视为同一种排队。) 输入描述: 输入m和n 输出描述: 排队总数 输入样例:(多组测试数据) 15 12 20 10 输

编程小霸王的Blog 2229
上一篇: 写了篇博客
下一篇: 在一个服务上架设多个web服务的方法
unomit
博客等级 码龄7年 30粉丝 110原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值