ZOJ 2962 Stack By Stack(递归)

题目:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=2962

题意:给你n个栈,每个栈给定大小为Ci,现在进行这样的操作:

情况1,当没有栈是满的情况,将第一个栈装入1~C1的数,也就是装满;

情况2,有一个栈i已经装满,那么将栈i的内容逐个弹出,装到下一个栈i+1中,直到栈i+1满了,或者栈i空了,注意如果栈i+1先满,且栈i不为空,则清空栈i

所有操作进行到栈n满为止

最后询问栈n中第x到第y个数的和


分析:仔细模拟一遍,发现每个栈i的内容,只和它前一个栈i-1内容有关,即为零个到多个的前一个栈倒置+前一个栈末尾的几个数倒置,也就是要知道栈i的内容,可以去栈i-1找,这样很容易想到用递归来做,具体看代码吧,很短。。。。除了头文件

ps:好久没更新了,一直在刷专题,做训练赛,过一阵子再做些专题总结吧T_T

代码:

/** head files*/
#include <cstdlib>
#include <cctype>
#include <cstring>
#include <cstdio>
#include <cmath>
#include &
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值