
P6704 [COCI2010-2011#7] GITARA(栈)
初始化栈数组sum和a。 读取输入的数字n和p。 对于每个输入的数字对(x, y):
发布日期:2021-05-08 21:51:56
浏览次数:14
分类:精选文章
本文共 785 字,大约阅读时间需要 2 分钟。
这道题可利用栈的思想来解决。每当有一个新的数字被输入时,检查栈顶的数字。如果栈顶的数字大于等于当前输入的数字,就弹出栈顶的数字,直到栈顶的数字小于当前输入的数字或栈为空。然后将当前数字压入栈中。通过这种方法,可以计算出总共弹出了多少次。
具体步骤如下:
- 进入while循环,检查栈顶是否大于等于1,并且栈顶的数字大于y。
- 如果条件满足,弹出栈顶(sum[x]减一),并计数加一。
- 继续循环,直到栈顶小于等于y或栈为空。
- 如果栈顶的数字等于y,跳过当前循环。
- 否则,将y压入栈中(sum[x]加一),计数加一。
通过上述步骤,可以计算出总共弹出的次数。
以下是实现代码:
#include#include using namespace std;int n, p, x, y, s, sum[7], a[7][300005];int main() { scanf("%d%d", &n, &p); for (int i = 1; i <= n; i++) { scanf("%d%d", &x, &y); while (sum[x] >= 1 && a[x][sum[x]] > y) { sum[x]--; s++; } if (a[x][sum[x]] == y) continue; a[x][++sum[x]] = y; s++; } printf("%d", s); return 0;}
这个代码通过模拟栈的操作,确保每次输入的数字都能正确处理,计算出总共弹出的次数。
发表评论
最新留言
表示我来过!
[***.240.166.169]2025年03月21日 23时57分50秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
不可思议的纯 CSS 滚动进度条效果
2019-03-06
【CSS进阶】伪元素的妙用--单标签之美
2019-03-06
开始CN的生活
2019-03-06
惊闻NBC在奥运后放弃使用Silverlight
2019-03-06
IE下尚未实现错误的原因
2019-03-06
Kubernetes 学习系列文章
2019-03-06
创建自己的Docker基础镜像
2019-03-06
使用Jenkins来实现内部的持续集成流程(上)
2019-03-06
HTTP 协议图解
2019-03-06
Python 简明教程 --- 20,Python 类中的属性与方法
2019-03-06
Python 简明教程 --- 21,Python 继承与多态
2019-03-06
KNN 算法-理论篇-如何给电影进行分类
2019-03-06
Spring Cloud第九篇 | 分布式服务跟踪Sleuth
2019-03-06
CODING 敏捷实战系列课第三讲:可视化业务分析
2019-03-06
使用 CODING DevOps 全自动部署 Hexo 到 K8S 集群
2019-03-06
工作动态尽在掌握 - 使用 CODING 度量团队效能
2019-03-06
CODING DevOps 代码质量实战系列最后一课,周四发车
2019-03-06
CODING DevOps 深度解析系列第二课报名倒计时!
2019-03-06
CODING DevOps 线下沙龙回顾二:SDK 测试最佳实践
2019-03-06
翻译:《实用的Python编程》03_01_Script
2019-03-06