第五届蓝桥杯决赛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 条评论
登录 后参与评论

相关文章

来自专栏Venyo 的专栏

HSV颜色直方图

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

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

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

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

3397
来自专栏C语言及其他语言

【每日一题】问题 1438: 大臣的旅费(本题为蓝桥真题,较难)

很久以前,T王国空前繁荣。为了更好地管理国家,王国修建了大量的快速路,用于连接首都和王国内的各大城市。 为节省经费,T国的大臣们经过思考,制定了一套优秀的修建...

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

洛谷P4602 [CTSC2018]混合果汁(主席树)

1640
来自专栏HansBug's Lab

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

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

2827
来自专栏我是攻城师

Lucene+Solr+ElasticSearch查询匹配优化

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

1722 最优乘车 1997年NOI全国竞赛

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

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

1722 最优乘车 未完成

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

2784
来自专栏大大的微笑

设计模式之策略模式

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

2146
来自专栏Python攻城狮

Python之禅

在Python交互式解释器中输 入import this就会显示Tim Peters的The Zen of python

801

扫码关注云+社区