走进“深度搜索基础训练“,踏入c++算法殿堂(五)

简介: 走进“深度搜索基础训练“,踏入c++算法殿堂(五)

【搜索与回溯算法】售货员的烦恼 (Standard IO)

时间限制: 1000 ms 空间限制: 262144 KB 具体限制

题目描述:

一间冰淇淋商店刚刚开张,外面有2×N个人购买1元的冰淇淋,其中一半人拿着1张2元人民币,另一半人拿一张1元人民币。售货员很粗心,没有准备零钱,要使出售过程中不发生找钱困难的问题,这2×N个人应该如何排队?请你帮售货员找出所有方案数量的总和。

输入:

一个整数N(N≤15)。

输出:

方案总数M。

样例输入:

4
样例输出:

14
这是第五道题。小航看了题,很快开始了思考。

小航想道(思路):

1.可用模拟的方法来做

2.从第一人开始,依次模拟,直到到达二分之一n

3.带一元钱的应排在带二元钱的人之前,因此方案中,已付款的带一元钱的人数必须等于或小于已付款且带二元钱的人数。否则,立即返回。

4.当超过界点(即大于二倍的n),也要马上返回

5.可以用两个全局变量储存“已付款的带一元钱的人数”与“已付款的带二元钱的人数”,用局部变量表示当前已有多少人付款

小航写道(程序)

#include<iostream>
using namespace std;
int n,sum,p1,p2;
void dg(int x)
{
    if(p1>n||p2>n)
    {
        return;
    }
    if(x==2*n)
    {
        sum++;
        return;
    }
    else
    {
        if(p2>p1)
        {
            return;
        }
        else
        {
            p1++;
            dg(x+1);
            p1--;
            p2++;
            dg(x+1);
            p2--;
        }
    }
}
int main()
{
    cin>>n;
    dg(0);
    cout<<sum;
}

很显然,结果是:

    100分!

但是,时间不多,小航没时间写完第五题,只好乱写一通。一个

显现显现出来!

“叮——”比赛结束,小亮以500分的成绩进入前100。

“同学们,没考好不要灰心,因为我们一同走进“深度搜索基础训练“,踏入c++算法殿堂!”主持人说,“对了,要记得写比赛总结,回家后要改题!”

小提示:
比赛时要注意时间,不要犯下和小航一样的错误;比赛后最好写比赛总结,并且改题,这样才会更好地进步!

相关文章
|
5天前
|
存储 算法 安全
基于红黑树的局域网上网行为控制C++ 算法解析
在当今网络环境中,局域网上网行为控制对企业和学校至关重要。本文探讨了一种基于红黑树数据结构的高效算法,用于管理用户的上网行为,如IP地址、上网时长、访问网站类别和流量使用情况。通过红黑树的自平衡特性,确保了高效的查找、插入和删除操作。文中提供了C++代码示例,展示了如何实现该算法,并强调其在网络管理中的应用价值。
|
3天前
|
存储 算法 安全
基于哈希表的文件共享平台 C++ 算法实现与分析
在数字化时代,文件共享平台不可或缺。本文探讨哈希表在文件共享中的应用,包括原理、优势及C++实现。哈希表通过键值对快速访问文件元数据(如文件名、大小、位置等),查找时间复杂度为O(1),显著提升查找速度和用户体验。代码示例展示了文件上传和搜索功能,实际应用中需解决哈希冲突、动态扩容和线程安全等问题,以优化性能。
|
10天前
|
算法 安全 C++
用 C++ 算法控制员工上网的软件,关键逻辑是啥?来深度解读下
在企业信息化管理中,控制员工上网的软件成为保障网络秩序与提升办公效率的关键工具。该软件基于C++语言,融合红黑树、令牌桶和滑动窗口等算法,实现网址精准过滤、流量均衡分配及异常连接监测。通过高效的数据结构与算法设计,确保企业网络资源优化配置与安全防护升级,同时尊重员工权益,助力企业数字化发展。
32 4
|
1月前
|
机器学习/深度学习 人工智能 自然语言处理
C++构建 GAN 模型:生成器与判别器平衡训练的关键秘籍
生成对抗网络(GAN)是AI领域的明星,尤其在C++中构建时,平衡生成器与判别器的训练尤为关键。本文探讨了GAN的基本架构、训练原理及平衡训练的重要性,提出了包括合理初始化、精心设计损失函数、动态调整学习率、引入正则化技术和监测训练过程在内的五大策略,旨在确保GAN模型在C++环境下的高效、稳定训练,以生成高质量的结果,推动AI技术的发展。
68 10
|
3月前
|
存储 机器学习/深度学习 算法
蓝桥杯练习题(三):Python组之算法训练提高综合五十题
蓝桥杯Python编程练习题的集合,涵盖了从基础到提高的多个算法题目及其解答。
135 3
蓝桥杯练习题(三):Python组之算法训练提高综合五十题
|
2月前
|
算法 搜索推荐 数据库
二分搜索:高效的查找算法
【10月更文挑战第29天】通过对二分搜索的深入研究和应用,我们可以不断挖掘其潜力,为各种复杂问题提供高效的解决方案。相信在未来的科技发展中,二分搜索将继续发挥着重要的作用,为我们的生活和工作带来更多的便利和创新。
59 1
|
2月前
|
分布式计算 Java 开发工具
阿里云MaxCompute-XGBoost on Spark 极限梯度提升算法的分布式训练与模型持久化oss的实现与代码浅析
本文介绍了XGBoost在MaxCompute+OSS架构下模型持久化遇到的问题及其解决方案。首先简要介绍了XGBoost的特点和应用场景,随后详细描述了客户在将XGBoost on Spark任务从HDFS迁移到OSS时遇到的异常情况。通过分析异常堆栈和源代码,发现使用的`nativeBooster.saveModel`方法不支持OSS路径,而使用`write.overwrite().save`方法则能成功保存模型。最后提供了完整的Scala代码示例、Maven配置和提交命令,帮助用户顺利迁移模型存储路径。
|
3月前
|
机器学习/深度学习 算法 决策智能
【机器学习】揭秘深度学习优化算法:加速训练与提升性能
【机器学习】揭秘深度学习优化算法:加速训练与提升性能
|
3月前
|
算法 决策智能
基于禁忌搜索算法的VRP问题求解matlab仿真,带GUI界面,可设置参数
该程序基于禁忌搜索算法求解车辆路径问题(VRP),使用MATLAB2022a版本实现,并带有GUI界面。用户可通过界面设置参数并查看结果。禁忌搜索算法通过迭代改进当前解,并利用记忆机制避免陷入局部最优。程序包含初始化、定义邻域结构、设置禁忌列表等步骤,最终输出最优路径和相关数据图表。
|
3月前
|
存储 算法 C++
高精度算法(加、减、乘、除,使用c++实现)
高精度算法(加、减、乘、除,使用c++实现)
785 0
高精度算法(加、减、乘、除,使用c++实现)