第五届蓝桥杯决赛B组C/C++——出栈次序

标题:出栈次序

X星球特别讲究秩序,所有道路都是单行线。一个甲壳虫车队,共16辆车,按照编号先后发车,夹在其它车流中,缓缓前行。路边有个死胡同,只能容一辆车通过,是临时的检查站,如图【p1.png】所示

图1

X星球太死板,要求每辆路过的车必须进入检查站,也可能不检查就放行,也可能仔细检查。如果车辆进入检查站和离开的次序可以任意交错。那么,该车队再次上路后,可能的次序有多少种?为了方便起见,假设检查站可容纳任意数量的汽车。显然,如果车队只有1辆车,可能次序1种;2辆车可能次序2种;3辆车可能次序5种。

现在足足有16辆车啊,亲!需要你计算出可能次序的数目

答案:35357670

最简单的办法就是递归,递归分三种情况考虑就行了

  1. 当车道左边没车,不管这时检查站里面有没有车,都只有一种次序 return 1
  2. 当左边有车,检查站里面没车,按照题目要求,每辆车都必须要进检查站,所以左边车的数量-1,检查站内车的数量+1 return f(n-1,1)
  3. 如果检查站里面有车,这种情况下的方案数是两个递归的和,这两个递归分别对应的情况是:左边再来一辆车进站和从检查站出去一辆车 return f(n - 1,m + 1) + f(n,m - 1)
#include <bits/stdc++.h>
using namespace std;
int f(int n,int m)//左边车的数量,检查站的中的数量 
{
	int a;
	if(n == 0)//如果左边没车 
		return 1;
	if(m == 0)//如果检查站没车,就要入站 
		return f(n - 1,1);
	if(m > 0)//如果检查站有车 
	//分两种情况:1.左边再来一辆车进站 2.检查站出去一辆车 
		return f(n - 1,m + 1) + f(n,m - 1); 
} 
int main()
{
	cout<<f(16,0);
	return 0;
}

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏前端儿

数数

我们平时数数都是喜欢从左向右数的,但是我们的小白同学最近听说德国人数数和我们有些不同,他们正好和我们相反,是从右向左数的。因此当他看到123时会说“321”。

1103
来自专栏PPV课数据科学社区

趣文 | 程序员们,都进来看看编程语言之父都有谁

1、PHP PHP之父,Rasmus Lerdorf,1994年,为了要维护个人网页而制作的一个简单的用Perl语言编写的程序。这些工具程序用来显示 Rasmu...

3577
来自专栏Vamei实验室

Python补充06 Python之道

作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明。谢谢!

1132
来自专栏潇涧技术专栏

Python Algorithms - C1 Introduction

算法导论是一本经典的大而全的算法书籍,而本书Python Algorithms不是来取代而是来补充算法导论的,因为算法导论提供的是简易的伪代码和详细的证明,而本...

852
来自专栏Jed的技术阶梯

Java设计模式之装饰模式

Ladies and gentlemen,May I get your attention,Please?,Now I’m going to talk abou...

7071
来自专栏数据结构与算法

1722 最优乘车 未完成

1722 最优乘车 1997年NOI全国竞赛  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 大师 Master 题解 题目描述 Des...

3114
来自专栏高性能服务器开发

携程面试题

冬天,西风凛冽,天空阴沉,行人都急匆匆的奔走,到了家,烤着炉子,外边洋洋洒洒的下起了雪。知道什么是“晚来天欲雪”,什么是“红泥小火炉”。

4123
来自专栏HansBug's Lab

1638: [Usaco2007 Mar]Cow Traffic 奶牛交通

1638: [Usaco2007 Mar]Cow Traffic 奶牛交通 Time Limit: 5 Sec  Memory Limit: 64 MB Sub...

3007
来自专栏Venyo 的专栏

HSV颜色直方图

package com.imageretrieval.features; import java.awt.Color; import com.imagere...

4009
来自专栏大大的微笑

设计模式之策略模式

         策略模式定义了一系列的算法,并将每一个算法封装起来,而且使它们还可以相互替换。 UML: ? //工厂方法,用来生产策略 public cla...

2256

扫码关注云+社区

领取腾讯云代金券