排队问题解题思路_解题笔记(26)——排队问题
问题描述:12个高矮不同的人,排成两排,每排必须是从矮到高排列,而且第二排比对应的第一排的人高,问排列方式有多少种?
思路:可以用递归来解决。假设已按高矮顺序编号从0到11,即0号最矮、11号最高,(i, j)表示某个人在队列中的位置。对于0号只能排在(0, 0),1号可以排在两个位置(0, 1)和(1, 0)。2号可以排的位置取决于1号的位置,如果1号排在(0, 1),那么2号可以排在两个位置(0, 0)和(1, 0)。如果1号排在(1, 0),那么2号只能排在(0, 1)。
观察一下,可以得出一下规律:对于i号,如果第一排与第二排的人数一样,那么他只能排在第一排;如果第一排的人数大于第二排,那么他可以排在第一排或者第二排。递归终止的条件是第一排或第二排排满了。
参考代码:
static int totalNum = 0;
//函数功能 : 排队问题
//函数参数 : firstFree为第1排第1个空余位置
// secondFree为第2排第1个空余位置
// num为排队人数
//返回值 : 无
void InLineProblem(int firstFree, int secondFree, int num)
{
if(firstFree == num/2 || secondFree == num/2) //其中一排无剩余位置
{
totalNum++;
return;
}
if(firstFree == secondFree) //第1排人数与第2排人数一样
{
InLineProblem(firstFree + 1, secondFree, num); //只能排在第1排
}
else
{
InLineProblem(firstFree + 1, secondFree, num); //排在第1排
InLineProblem(firstFree, secondFree + 1, num); //排在第2排
}
}
调用方式如下:
int main()
{
InLineProblem(0, 0, 12);
cout<
return 0;
}
排队问题解题思路_解题笔记(26)——排队问题相关推荐
- 排队问题解题思路_教育随笔|数学之排队问题
小学一年级上册的教材中就已经涉及到"两人之间有几人"的问题,但是对于低年级的学生而言,只学习了20以内的数及其加减法,如何让小学生能更好的理解和掌握这一问题,老师光靠一张嘴和一支粉 ...
- 排队问题解题思路_高考文科数学是最“拉分”的!6种题型分析与10大解题方法...
我回来啦~~好多天没更了. 最近私信挺多的,很多人跟我说学习毫无章法,总是高投入低产出,大量的时间.精力投入,成绩却不见起色.包括当年我自己上高中的时候,也是这样. 问题其实就是上课听懂了.但是一做题 ...
- 排队问题解题思路_青岛版二年级数学下册8.2除加除减解决问题微课视频辅导+练习...
(视频最大化,横屏观看,视觉效果更佳哦!) 课后作业 先 思 考 再 看 答 案 1.34-15÷3=29(元) 答:一件上衣比一双袜子贵29元. 2.48÷6+48=56(只) 答:小香的奶奶一共养 ...
- python四位玫瑰数的解题思路_入门python知识点总结以及15道题的解题思路分析
知识点总结python 1.序列app 操做符ide x in s 若是x是列表s的元素,返回True,不然False s + t 链接两个序列s和t s*n或者n*s 将序列s复制n次 s[i] 返 ...
- python解题思路_黄哥Python: 一道水题“最大唯一数” 解题思路
有人在**论坛上提问,求解一个数组中最大唯一数. 1.读题,数组中全部是整数,有的数字有重复的,求出不重复的最大整数. 2.解题思路,利用Python 字典去统计每一个整数出现的次数,整数为key,出 ...
- java亲密数的解题思路,算法解题思路总结 - jjhgx的个人空间 - OSCHINA - 中文开源技术交流社区...
算法解题思路: 细读算法要求 找到极限情况 找到临界情况,结果依赖 找到最终的结束求解点 编程实现:考虑算法的空间复杂度和时间复杂度 案例说明: 假设: 输入字符串为:s, 长度为:slen, s的第 ...
- 排队问题解题思路_三大策略、5个技巧,完美解决超市收银排队难题
在超市购物时,经常看到许多顾客从货架上将称心的商品往购物车里放,可一看到收银台前等待交款的顾客长龙,就将购物车放一边,空手走出卖场.在当今节奏越来越快的社会里,大多数顾客是无法忍受漫长等待的. 虽然顾 ...
- 排队问题解题思路_双点医院解决全科排队方法 双点医院怎么解决排队问题
双点医院解决全科排队方法 双点医院怎么解决排队问题 2018-09-07 14:44:29来源:游戏下载编辑:野狐禅评论(0) <双点医院>怎么解决全科排队呢?不少玩家都想知道,下面就为大 ...
- java兰顿蚂蚁解题思路_程序员面试金典 - 面试题 16.22. 兰顿蚂蚁(deque模拟)
1. 题目 一只蚂蚁坐在由白色和黑色方格构成的无限网格上. 开始时,网格全白,蚂蚁面向右侧. 每行走一步,蚂蚁执行以下操作. (1) 如果在白色方格上,则翻转方格的颜色,向右(顺时针)转 90 度,并 ...
最新文章
- m_Orchestrate learning system---七、如何快速学好前端
- Java学习_day005:循环结构
- 设计模式C++实现——组合模式
- MyEclipse下Struts2配置使用和Ajax、JSON的配合
- 开发 自我介绍_对于开发者来说,自我是敌人
- day33 java的多线程(5)
- C#人脸识别入门篇--提取人脸特征值及人脸识别
- 关于CSS HACK
- ansible-playbook之循环(Loops)
- 虚拟机自省XenAccess和vmitools
- 【入门】萌新IP入门常识(一):什么是IP地址和代理IP
- Windows 驱动开发 新手入门(一)
- 交互式机器学习/ 强化学习在图像领域中的应用
- Windows无法安装到GPT格式磁盘的根本解决办法 - 初学者系列 - 学习者系列文章...
- 攻防演练第四年的一些碎碎念
- 云小课|使用SQL加密函数实现数据列的加解密
- c语言对孩子的作用,爸爸用C语言给孩子早教,孩子逐渐崩溃,网友:你别害孩子秃顶...
- aiem模型matlab,基于MIMICS模型的麦田地表土壤含水量反演研究
- 这所C9高校,再添中科院院士!
- 用百度地图实现添加电子围栏并判断是否在范围内