c++算法题 坐电梯 数据结构

小G 来到了著名的CIGOM 大厦。大厦一共有n 层,初始的时候小G 在第A
层。小G 特别想去B 层小M 的办公室看一看,然而因为安保原因,B 层已经被
封锁无法进入。
但是小G 既然来了,就想在大厦里面逛一逛。大厦里面有一部电梯,小G 决
定坐k 次电梯。因为小G 比较无聊,他给自己设定了这样一个规矩:假如当前他
在x 层,则他要去的下一个楼层y 和x 的楼层差必须要小于x 和B 的楼层差。每到达一个楼层,小G 都要记录下来其楼层号。
当小G 转完一圈后,他也记录下了k +1 个楼层号(可能有重复)。小G 现在想知道,按照他定下的规矩,一共有多少种可能的楼层号序列?

输入格式

输入文件一行,4 个数字n; A;B; k,含义如题目所述。

输出格式

输出一个数字,表示可能的楼层号序列的数量。答案对109 + 7 取模。

样例输入
5 2 4 1
样例输出
2

c++
1

2个回答

首先 ,这是一个数学题;其次这肯定还要对y和x的差值分类(即下一层在此楼上还是下),可以使用分支语句,分支后根据给定的条件找出y的范围(y-x<x-B)),y确定后就好办了;使用两重循环找出所有的组合,然后累加,当然期间还要去除相同排列的情况。
另一种情况也相同。

1

求代码QwQ图片说明

0
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
c++算法题 坐电梯 数据结构
小G 来到了著名的CIGOM 大厦。大厦一共有n 层,初始的时候小G 在第Arn层。小G 特别想去B 层小M 的办公室看一看,然而因为安保原因,B 层已经被rn封锁无法进入。rn但是小G 既然来了,就想在大厦里面逛一逛。大厦里面有一部电梯,小G 决rn定坐k 次电梯。因为小G 比较无聊,他给自己设定了这样一个规矩:假如当前他rn在x 层,则他要去的下一个楼层y 和x 的楼层差必须要小于x 和B 的楼层差。每到达一个楼层,小G 都要记录下来其楼层号。rn当小G 转完一圈后,他也记录下了k +1 个楼层号(可能有重复)。小G 现在r想知道,按照他定下的规矩,一共有多少种可能的楼层号序列?rnn输入格式rnn输入文件一行,4 个数字n; A;B; k,含义如题目所述。rnn输出格式rnn输出一个数字,表示可能的楼层号序列的数量。答案对109 + 7 取模。nrn样例输入rn5 2 4 1rn样例输出rn2rn
数据结构与算法题目汇总
数据结构 队列 与 栈 算法 贪心算法数据结构队列 与 栈232. Implement Queue using Stacks(用栈表示队列) 基本思想:准备两个栈,一个负责接收数据(队尾),一个负责移除数据(队头)。225. Implement Stack using Queues(用队列模拟栈) 基本思想:每次输入队列,将队头元素取出,重新插入队列,直到最后一个插入元素暴露在队列头部。算法
数据结构算法设计题汇总(1)
为了更好地学习数据结构,方便自己复习反思,特建立此分类进行课后习题的总结,通过总结来督促自己学习与反思,提升水平,一步步找出更好的算法。1.将一元素插入一个有序的顺序表中,使其仍然有序,写出能够实现此算法的代码。我的思路是将元素先插入表尾,之后再进行插入排序,代码如下:#include<stdio.h> #define OK 1 #define ERROR 0 #define TRUE 1 #def
C语言经典编程题75道 (南京大学一个高手整理的 适合有一定数据结构基础的用)
南京大学一个高手整理的 我偷来给大家分享 适合想接触ACM但ACM又难的编程者使用 题目全中文的 只要把题目在GOOGLE上一搜就有答案了
杭电1008坐电梯
#include<iostream> using namespace std; int main() { int n,sum=0,num[100]={0}; while(cin>>n&&n!=0&&n>0) { num[0]=0;sum=0; for(int i=1;i<=n;i++) { cin>>nu
数据结构和算法分析C语言描述习题答案(全部)
数据结构和算法C语言描述的全部答案,网上留传的是1-9章,我这里把1-12章全部拿出来给大家分享.
挑战数据结构与算法面试题——80题全解析(一)
题目来源“数据结构与算法面试题80道”。这是第一部分,包含其中的第1题到第5题。 在此给出我的解法,如你有更好的解法,欢迎留言。 问题分析:二叉查找树是一种二叉树的结构,其中,根节点的值大于左子树的值,小于右子树的值。而二叉查找树的中序遍历即为排序的结果。对于根节点,前驱指针指向左子树中最大的节点,同理,后驱指针指向右子树中最小的节点,如下图所示: 树是一种递归的结果,因...
数据结构 - 二叉树 - 面试中常见的二叉树算法题
数据结构 - 二叉树 - 面试中常见的二叉树算法题 数据结构是面试中必定考查的知识点,面试者需要掌握几种经典的数据结构:线性表(数组、链表)、栈与队列、树(二叉树、二叉查找树、平衡二叉树、红黑树)、图。 本文主要介绍树中的常见的二叉树数据结构。包括 概念简介 二叉树中树节点的数据结构(Java) 二叉树的遍历(Java) 常见的二叉树算法题(Java) 概念简介 如果对二叉
[高清文字版]数据结构经典算法实现与习题解答.pdf
本书以计算机学科的主干课程——数据结构为主线索组织内容,涵盖了计算机学科涉及到的大部分经典算法的实现,书中结合大量的图示和程序代码,展示了各种数据结构的实现细节和编程技巧,能够帮助学习者提高运用知识解决实际问题的能力。同时,书中还汇编了高校数据结构常用教材中出现的大部分习题的解答。 本书的配套光盘中附带了书内提到的所有经典应用的 C 语言实现。 本书既可作为计算机及相关专业的学生学习数据结构、进行课程设计的辅导材料,又可作为学习者学习计算机学科其他相关课程的辅导材料。
数据结构时间复杂度题库
1、下列说法正确的是:  A、如果函数f(n)是O(g(n)),g(n)是O(h(n)),那么f(n)是O(h(n)) 解析:  B、如果函数f(n)是O(g(n)),g(n)是O(h(n)),那么f(n)+g(n)是O(h(n)) 解析:  C、如果a&amp;gt;b&amp;gt;1,logan是O(logbn),但logbn不一定是O(logan) 解析: logan=...
C指针实现单链表---王晓东《数据结构与算法设计》
linkList.h 个人笔记,不喜勿喷,欢迎大佬指导 #include &amp;lt;malloc.h&amp;gt; #define Error(module) fprintf(stderr,&quot;error:&quot;#module&quot;\n&quot;) typedef struct node *link; typedef struct node { ListItem element; link...
C语言 ,嵌入式 ,数据结构 面试题目(3)
182 链表题:一个链表的结点结构struct Node{int data ;Node *next ;};typedef struct Node Node ;(1)已知链表的头结点head,写一个函数把这个链表逆序 ( Intel)Node * ReverseList(Node *head) //链表逆序{if ( head == NULL || head-&amp;gt;next == NULL )re...
C++编程,数据结构,算法类面试题集
1. 在linked list中找倒数第N个结点 2. 倒转linked list 3. 二叉树的结点有指向parent的指针,求最近公共祖先 4. 给一个数组,如何打印该数组成员构成集合的全部子集合. 5. 有两个字符串,一个是text,一个是command, Command有四种:    ‘+’: 在text中前进一位    ‘-’: 在text中后退一位    ‘a’: 在当前
微软公司等数据结构+算法面试100题
微软等公司数据结构+算法面试100题(第1-100题)首次完整亮相 注:本文转自July的博客:http://blog.csdn.net/v_july_v/article/details/6057286,十分感谢!更新:现今,这100题的答案已经全部整理出来了,微软面试100题2010年版全部答案集锦:http://blog.csdn.net/v_july_v/article/details/68
数据结构与算法分析(C语言描述)程序代码及习题答案
数据结构与算法分析(C语言描述)程序代码及习题答案 书中的URL http://www.aw.com/cseng 好像失效了,所以上传在CSDN以便大家找到并学习使用
数据结构 单链表相关习题练习
1.逆序打印单链表采用递归的方法即可实现。//逆序打印单链表 void LinkListReversePrint(LinkNode* head) { if(head == NULL) { return; } LinkListReversePrint(head-&amp;gt;next); printf(&quot;[%c] &quot;,head-&amp;gt;...
数据结构之分而治之算法的问题
我在网上看了陈越老师的数据结构,很棒,讲了分而治之算法,原理我已经懂了,代码网上也有,但是有一个疑惑,就是中间跨越部分最大的子列和为iRightMaxSum + iLeftMaxSum,但是很明显这个iRightMaxSum + iLeftMaxSum是不对。如下图举例。如图,左边最大为6,右边最大为8,而中间跨越最大为11&amp;lt;(6+8)。故这个iRightMaxSum + iLeftMaxS...
(考研)数据结构中的重难点算法
【(考研)数据结构中的重难点算法】 KMP 构造哈夫曼树 普里姆算法 克鲁斯卡尔 迪杰斯特拉 树 图遍历算法
数据结构与算法 哈夫曼树的实现
数据结构与算法课程实验报告,实现哈夫曼树,对文档进行哈夫曼树编码
数据结构习题答案(全部算法)严蔚敏版
第1章 绪论 1.1 数据结构的基本概念和术语 1.1.1 引言 1.1.2 数据结构有关概念及术语 1.1.3 数据结构和抽象数据类型(ADT) 1.2 算法描述与分析 1.2.1 什么是算法 1.2.2 算法描述工具——C语言 1.2.3 算法分析技术初步 习题一 第2章 线性表 2.1 线性表的定义及其运算 2.1.1 线性表的定义 2.1.2 各种运算简介 2.2 线性表的顺序存储结构(向量) 2.2.1 顺序存储结构(向量) 2.2.2 向量中基本运算的实现 2.3 线性表的链表存储结构 2.3.1 单链表与指针 2.3.2 单链表的基本运算 2.4 循环链表和双向链表 2.4.1 循环链表 2.4.2 双向链表 2.4.3 顺序存储结构与链表存储结构的综合分析与比较 2.5 多项式相加问题 2.5.1 多项式相加的链表存储结构 2.5.2 多项式相加的算法实现 2.6 线性表的算法实现举例 2.6.1 实现线性表顺序存储结构及运算的C语言源程序 2.6.2 单链表处理的C语言源程序 习题二 第3章 栈和队列 3.1 栈 3.1.1 栈的定义及其运算 3.1.2 栈的顺序存储结构(向量) 3.1.3 栈的链表存储结构 3.1.4 栈的应用 3.2 队列 3.2.1 队列的定义及运算 3.2.2 队列的顺序存储结构(向量) 3.2.3 队列的链表存储结构 3.3 栈和队列的算法实现举例 习题三 第4章 串 4.1 串的基本概念 4.2 串的存储结构 4.2.1 串的顺序存储 4.2.2 串的链表存储 4.2.3 串变量的存储映象 4.3 串的运算 4.3.1 串的运算简介 4.3.2 串的匹配运算 4.4 文本编辑 习题四 第5章 数组和广义表 5.1 数组的基本概念 5.1.1 数组的概念 5.1.2 数组的顺序表示 5.1.3 特殊矩阵的压缩存储 5.2 稀疏矩阵的三元组存储 5.2.1 三元组表 5.2.2 稀疏矩阵的运算 5.3 稀疏矩阵的十字链表存储 5.3.1 十字链表的组成 5.3.2 十字链表的有关算法 5.4 广义表 5.4.1 广义表的概念和特性 5.4.2 广义表的存储结构 5.4.3 求广义表的深度 5.4.4 广义表的输出 5.4.5 建立广义表的存储结构 5.5 迷宫问题 习题五 第6章 树 6.1 树的基本概念和术语 6.1.1 树的定义 6.1.2 树的常用术语 6.1.3 树的表示方法 6.2 二叉树 6.2.1 二叉树的定义 6.2.2 二叉树的重要性质 6.2.3 二叉树的存储结构 6.2.4 二叉树二叉链表的一个生成算法 6.3 遍历二叉树 6.3.1 先根遍历 6.3.2 中根遍历 6.3.3 后根遍历 6.3.4 二叉树遍历算法的应用 6.4 线索二叉树 6.4.1 线索二叉树的基本概念 6.4.2 线索二叉树的逻辑表示图 6.4.3 中根次序线索化算法 6.4.4 在中根线索树上检索某结点的前趋或后继 6.4.5 在中根线索树上遍历二叉树 6.5 二叉树、 树和森林 6.5.1 树的存储结构 6.5.2 树与二叉树之间的转换 6.5.3 森林与二叉树的转换 6.5.4 一般树或森林的遍历 6.6 树的应用 6.6.1 二叉排序树 6.6.2 哈夫曼树及其应用 6.7 二叉树的建立和遍历C语言源程序示例 习题六 第7章 图 7.1 图的基本概念和术语 7.1.1 图的基本概念 7.1.2 路径和回路 7.1.3 连通图 7.1.4 顶点的度 7.2 图的存储结构 7.2.1 邻接矩阵 7.2.2 邻接链表 7.3 图的遍历和求图的连通分量 7.3.1 图的建立 7.3.2 图的遍历 7.3.3 求图的连通分量 7.4 图的生成树 7.4.1 生成树的概念 7.4.2 最小生成树 7.4.3 普里姆(Prim)算法和克鲁斯卡尔(Kruskal)算法 7.5 最短路径 7.5.1 单源顶点最短路径问题求解 7.5.2 求有向网中每对顶点间的路径 7.6 有向无环图及应用 7.6.1 拓扑排序 7.6.2 关键路径 7.7 图的算法C语言程序实现举例 7.7.1 无向图的邻接表的建立和遍历 7.7.2 有向无环图的拓扑排序和求关键路径 习题七 第8章 查找 8.1 基本概念 8.2 静态表查找 8.2.1 顺序表的查找 8.2.2 有序表的查找 8.2.3 索引顺序表的查找 8.3 动态查找表 8.3.1 二叉排序树和二叉平衡树 8.3.2 B-树和B+树 8.4 哈希表及其查找 8.4.1 哈希表与哈希函数 8.4.2 构造哈希函数的常用方法 8.4.3 解决冲突的主要方法 8.5 哈希表算法实现C语言源程序 习题八 第9章 排序 9.1 排序基本概念 9.2 插入排序 9.2.1 直接插入排序 9.2.2 折半插入排序 9.2.3 希尔排序 9.3 交换排序 9.3.1 冒泡排序 9.3.2 快速排序 9.4 选择排序 9.4.1 简单选择排序 9.4.2 堆排序 9.5 归并排序 9.6 基数排序 9.7 内部排序总结 9.8 有关排序算法的C语言源程序 9.9 多路归并用于外排序的简介 习题九 第10章 文件 10.1 文件的基本概念 10.1.1 文件 10.1.2 外存储器及信息特点 10.2 文件的组织 10.2.1 顺序文件 10.2.2 散列文件 10.2.3 索引文件 10.2.4 索引顺序文件 10.3 多关键字文件 10.3.1 多重表文件 10.3.2 倒排文件 习题十 第11章 数据结构程序设计及其它 11.1 数据结构程序设计 11.1.1 算法书写规范 11.1.2 实习步骤规范 11.2 实习报告范例 第12章 数据结构与面向对象程序设计(OOP) 12.1 面向对象程序设计的引入 12.1.1 面向对象的基本概念 12.1.2 面向对象的程序设计方法概要 12.2 面向对象的数据结构程序设计举例 12.2.1 线性表的程序设计 12.2.2 堆栈的程序设计举例
数据结构常用算法程序(C语言)
本文章所有程序均摘取自老师课件,仅供自己方便查看。插入排序#include &amp;lt;stdio.h&amp;gt; typedef struct {int key; }datatype; void D_InsertSort(datatype R[ ],int n) /*待排序的n个元素放在数组R中,用直接插入法进行排序*/ { int i,j; for ( i=2; i&amp;lt;=n; i++) /...
数据结构算法题总结
python数据结构与算法——图的最短路径(Dijkstra算法) # Dijkstra算法——通过边实现松弛 # 指定一个点到其他各顶点的路径——单源最短路径 # 初始化图参数 G = {1:{1:0, 2:1, 3:12}, 2:{2:0, 3:9, 4:3}, 3:{3:0, 5:5}, 4:{3:4, 4:0, ...
数据结构和算法经典100题-第1题
说在开头的话:如果拿金庸武侠做个比喻,数据结构和算法的学习就好比是程序员内功。内功的修炼往往不能一蹴而就,需要水滴石川。在博客中的这个分类中,专门记录我在数据结构和算法中的修炼。希望数据结构和算法的武林高手们多多指导,希望一起有志于提高内功的朋友们和我一起切磋进步。 从网络上看了很多关于数据结构和算法的学习方法。我采取的学习路线也并不是最好的,总结下来是: 观看麻省理工大学的公开课《算法导论》视频
整理的一些刷题网站
 本人现在正在学习数据结构与算法,想通过刷题练习一下分析问题,解决问题的能力。请问国内有哪些好的刷题网站?修改 举报 添加评论 分享 • 邀请回答 按投票排序按时间排序 5 个回答 赞同57 反对,不会显示你的姓名 Luau Lawrence,地球OL欠费玩家。 wil
《数据结构与算法》期末试题试卷A附选择题答案
《数据结构与算法》期末试题试卷A 《数据结构与算法》期末试题试卷A 《数据结构与算法》期末试题试卷A 《数据结构与算法》期末试题试卷A 《数据结构与算法》期末试题试卷A
王道考研数据结构与算法编程题题目解答
2018 请注意函数名为此题的大致意思,函数名后的数字为该章节编程题的序号,请注意以序号为准 ——页面长请使用左侧目录 第2章 2.2 #include&amp;amp;amp;amp;amp;amp;lt;stdio.h&amp;amp;amp;amp;amp;amp;gt; #include&amp;amp;amp;amp;amp;amp;lt;stdlib.h&amp;amp;amp;amp;amp;amp;gt; #
数据结构刷刷题,打打基础。(一)
链表:输入一个链表,按链表值从尾到头的顺序返回一个ArrayList。  public class ListNode { int val; ListNode next = null; public ListNode(int val) { this.val = val; } } import java.util.ArrayList; public...
考研数据结构算法总结
考研数据结构经典算法总结,很全的,很强大。。
数据结构和算法题目集
6-2顺序表操作集 List结构定义 typedef int Position; typedef struct LNode *List; struct LNode { ElementType Data[MAXSIZE]; Position Last; /* 保存线性表中最后一个元素的位置 */ }; 四个所写函数 /* 你的代码将被嵌在这里 */ List MakeEm...
PTA数据结构与算法题目集(中文) 函数题 (1)
PTA数据结构与算法题目集(中文) 函数题4-1~4-5
C++面试题之数据结构和算法
目录 1、String原理及实现 2、链表的实现 2.1、顺序链表 2.2、链式表 2.3、双链表 2.4、循环链表 3、队列 3.1、顺序队列 3.2、链式队列 4、栈 4.1、顺序栈 4.2、链式栈 5、二叉树 5.1、二叉树的链式存储 5.2、哈夫曼树 6、查找算法 6.1、线性表查找(顺序查找、折半查找) 6.2、树表查找(二叉排序树、平衡二叉树、B-树...
c++面试题(数据结构篇)
●二叉搜索树:一个节点最多只允许两个子节点,任何节点的键值一定大于其左子树中的每个节点的键值,并小于其右子树中每个结点的键值。从左可以搜索到最小元素,从右可以搜索到最大元素。 ●红黑树:是一个平衡二叉查找树,只不过在每个结点上增加了结点的颜色标志,它能确保没有一条路径会比其它路径长出两倍。主要用来存储有序的数据,如STL中的set,map,效率非常高。 ●hashtable:哈希表就是一种根据
数据结构 上机测试题 汇总
1、 编写算法,将二个升序链表在原表空间内归并成一个升序链表。#include <stdio.h> #include <string.h> #include <iostream> #include <queue> #include <math.h> #include <stdlib.h> using namespace std;typedef struct linklist { int
数据结构经典算法
1.数组中除了两个数只出现过一次,其他的均出现过两次,请找出这两个只出现过一次的数。        例如:{10,9,8,7,6,6,7,8,9,10,5,5,4,3};4和3只出现过一次,请找出出现过一次的数。首先想到的代码应该是上一个提到的遍历两次取出没有找到的相同的数字,代码如下: public static List findOnlyNum(int[] array) { List&amp;...
数据结构算法题/树的遍历(深度优先和广度优先)
在编程生活中,我们总会遇见树性结构,这几天刚好需要对树形结构操作,就记录下自己的操作方式以及过程。现在假设有一颗这样树,(是不是二叉树都没关系,原理都是一样的)。此外二叉树可以递归的方法遍历。   1、深度优先 英文缩写为DFS即Depth First Search.其过程简要来说是对每一个可能的分支路径深入到不能再深入为止,而且每个节点只能访问一次。对于上面的例子来说深度优先遍历的结果...
数据结构经典算法面试题
  转自:http://hi.baidu.com/geogre_jsj/blog/item/e4b98fd2aab5aa3611df9b92.html   由于这些题,实在太火了。所以,应广大网友建议要求,在此把之前已整理公布的前80题,   现在,一次性分享出来。此也算是前80题第一次集体亮相。   此些题,已有上万人,看到或见识到,若私自据为己有,必定为有知之人识破,付出代价。 ...
【数据结构与算法】刷题汇总 Python 版
我的BLOG里写了一部分算法和数据结构,题目都是从网上和书上找的。当然一下这些并不全面,我打算利用今后的时间把各类的算法题都用Python写一遍(因为我主要是用Python),尽可能囊括所有的算法题。写这些题并不是目的,主要还是为了能够提升自己的数据结构和算法的水平,以及码代码的速度和熟练度。所有的代码都提交到了我的 github 上面:冬日新雨的github:数据结构和算法刷题代码下载1、字符串:
算法与数据结构考研试题精析1800(习题+答案pdf版)
算法与数据结构考研试题精析(习题+答案pdf版)非常清晰
c/c++经典算法面试题
时针分针重合几次 表面上有60个小格,每小格代表一分钟, 时针每分钟走1/12小格,分针每分钟走1小格,从第一次重合到第二次重合分针比时针多走一圈即60小格,所以 60/(1-1/12)=720/11 每隔720/11分才重合一次(而并不是每小时重合一次) 1440里有22个720/11,如果说算上0点和24点,那也是重合23次而已,但我觉得0点应该算到前一天的24点头上,所以每一天循环下来
算法与数据结构面试题(6)-腾讯面试题
题目 给你10 分钟时间,根据上排给出十个数,在其下排填出对应的十个数 要求下排每个数都是先前上排那十个数在下排出现的次数。 上排的十个数如下: 【0,1,2,3,4,5,6,7,8,9】 初看此题,貌似很难,10 分钟过去了,可能有的人,题目都还没看懂。 举一个例子, 数值: 0,1,2,3,4,5,6,7,8,9 分配: 6,2,1,0,0,0,1,0,0,0 0 在
文章热词 数据结构 数据结构学习 数据结构课程 数据结构培训 数据结构视频教程
相关热词 c++算法题 ccf c++ 数据结构与算法 第四版 c++数据结构与算法原版 python数据结构与算法教程 零基础学习python课后题