P1165 日志分析

题目描述

M 海运公司最近要对旗下仓库的货物进出情况进行统计。目前他们所拥有的唯一记录就是一个记录集装箱进出情况的日志。该日志记录了两类操作:第一类操作为集装箱入库操作,以及该次入库的集装箱重量;第二类操作为集装箱的出库操作。这些记录都严格按时间顺序排列。集装箱入库和出库的规则为先进后出,即每次出库操作出库的集装箱为当前在仓库里所有集装箱中最晚入库的集装箱。

出于分析目的,分析人员在日志中随机插入了若干第三类操作――查询操作。分析日志时,每遇到一次查询操作,都要报告出当前仓库中最大集装箱的重量。

输入输出格式

输入格式:

包含N+1 行:

第一行为1 个正整数N,对应于日志内所含操作的总数。

接下来的N 行,分别属于以下三种格式之一:

格式1: 0 X //一次集装箱入库操作,正整数X表示该次入库的集装箱的重量

格式2: 1 //一次集装箱出库操作,(就当时而言)最后入库的集装箱出库

格式3: 2 //一次查询操作,要求分析程序输出当前仓库内最大集装箱的重量

当仓库为空时你应该忽略出库操作,当仓库为空查询时你应该输出0。

输出格式:

输出行数等于日志中查询操作的次数。每行为一个正整数,表示查询结果。

输入输出样例

输入样例#1: 复制

13
0 1
0 2
2
0 4
0 2
2
1
2
1
1
2
1
2

输出样例#1: 复制

2
4
4
1
0

说明

对于20%的数据,有N≤10;

对于40%的数据,有N≤1000;

对于100%的数据,有N≤200000,X≤10^8。

始终记录了栈中的那个最大值,相当与用了单调栈的一小点东西

洛谷题解:

/*

P1165 题解

模拟算法

*/

/*

49分思路:

先将要出去的都放出去,然后再将要进来的都存进来,接着如果遇到查询操作的话就扫一遍整个数组,求出一个最大值,再输出。否则如果这个数组是空的,那么就输出0即可。

(超时49分)

满分思路:

先将要出去的都放出去,然后再将要进来的都存进来,然后再和这个数组中的前一个数比较大小,将当前的这个值改为这两个数当中的最大的那个数的值即可。接着如果遇到查询操作的话输出当前这一个数组中的最后一个数即可,否则如果这个数组是空的,那么就输出0就可以了。

*/

满分代码:

 1 #include <cstdio>
 2 int a[10000001];
 3 int max(int x,int y)
 4 {
 5     return x>y?x:y;
 6 }
 7 int main()
 8 {
 9     int len=0,p=0;
10     scanf("%d",&p);
11     while(p--)
12     {
13         int t=0;
14         scanf("%d",&t);
15         if(t==0)
16         {
17             scanf("%d",&a[++len]);
18             a[len]=max(a[len-1],a[len]);
19         }
20         else if(t==1)
21         {
22             if(len==0)
23             {
24                 continue;
25             }
26             a[len--]=0;
27         }
28         else if(t==2)
29         {
30             int maxx=0;
31             if(len==0)
32             {
33                 printf("0\n");
34                 continue;
35             }
36             printf("%d\n",a[len]);
37         }
38     }
39     return 0;
40 }

转载于:https://www.cnblogs.com/Renyi-Fan/p/7773238.html

P1165 日志分析相关推荐

  1. 2021年大数据Spark(二十一):Spark Core案例-SogouQ日志分析

    目录 案例-SogouQ日志分析 业务需求 准备工作 HanLP 中文分词 样例类 SogouRecord 业务实现 ​​​​​​​搜索关键词统计 ​​​​​​​用户搜索点击统计 ​​​​​​​搜索时 ...

  2. 9开启线程日志_GC 日志分析

    GC 日志分析 首先,如果需要查看 GC 日志,需要在 jvm 参数中加入如下参数 -XX:+PrintGCTimeStamps -XX:+PrintGCDetails -Xloggc:d:/GClo ...

  3. apache日志分析简介

    对apache的日志分析做下简单的介绍,主要参考apache官网的Log Files,手册参照 http://httpd.apache.org/docs/2.2/logs.html 一.日志分析 如果 ...

  4. python 多线程日志切割+日志分析

    楼主最近刚刚接触python,还是个小菜鸟,没有学习python之前可以说楼主的shell已经算是可以了,但用shell很多东西实现起来还是不可能的事情,例如最明显的一点大日志分析,由于楼主的公司,每 ...

  5. 开源实时日志分析ELK

    开源实时日志分析ELK 2018-01-04 转自:开源实时日志分析ELK平台部署 日志主要包括系统日志.应用程序日志和安全日志.系统运维和开发人员可以通过日志了解服务器软硬件信息.检查配置过程中的错 ...

  6. 2021年中国工业互联网安全大赛核能行业赛道writeup之日志分析

    附件题:日志分析 题目描述: 核电站新来的运维小王粗心把一个办公网地址映射到外网,遭到大量攻击,你能从日志当中找到有效信息吗. 附件下载: 2021-10-12T15_37_51.610646+00_ ...

  7. 日志分析工具splunt

    实验环境 网关  classroom  172.25.8.254 workstation 172.25.8.9 server a-jeth0 172.25.8.10-外网 eth1 192.168.0 ...

  8. [原创]Android Monkey 在线日志分析工具开发

    [原创]Android Monkey 在线日志分析工具开发 在移动App测试过程中,Monkey测试是我们发现潜在问题的一种非常有效手段,但是Android原生的Monkey有其天然的不足,数据不能有 ...

  9. LogMiner日志分析工具的使用

    1.安装logminer:       要安装LogMiner工具,必须首先要运行下面这样两个脚本,       $ORACLE_HOME/rdbms/admin/dbmslm.sql       $ ...

最新文章

  1. vue如何配置服务器端跨域_vue开发环境配置跨域,一步到位
  2. 【遗传优化BP网络】基于自适应遗传算法的BP神经网络的股票预测MATLAB仿真
  3. 4.1.4 OS之文件的物理结构(连续分配、链接分配[隐式-显式]、索引分配[链接方案-多层索引-混合索引])
  4. 新增操作 失败后重试_可重试的操作
  5. Apache Kafka消费者再平衡
  6. MongoDB 空指针引用拒绝服务漏洞
  7. 一辈子的礼物56ay长沙论坛
  8. html表单输入价格,在HTML中使用表格来计算总价格
  9. html5 postMessage解决跨域、跨窗口消息传递[转载]
  10. php推荐位调用,推荐位数据循环调用
  11. Java SE 原生数据类型
  12. 时钟转盘html源代码
  13. 微信小程序人脸识别之人脸属性检测
  14. 特斯拉如何饕餮中国红利?
  15. 7-2 The Judger (25分)
  16. 看完此文再不懂区块链算我输,用Python从零开始创建区块链
  17. 前后端RSA加密梳理
  18. 标准摇滚电吉他音源 Orange Tree Samples Evolution Rock Standard
  19. 计算机扩展屏幕管理软件,小智桌面 - 桌面助手 - 桌面管理美化软件
  20. 别在那抱怨高考怎么不考DOTA呢!!高考就是考DOTA你也不行!

热门文章

  1. 接收不到其他机器发来的报文_TCP/IP报文格式,康康就知道了
  2. java 泛型 类型形参(Type Parameters)
  3. Pandas 对象储存
  4. java 中random类使用_Python中random的使用方法
  5. uint32是什么数据类型_C++编程基础: 4. 数据类型
  6. 怎样安装ubuntu系统
  7. 从零开始打造数据中心的N道门槛 | 又拍干货分享
  8. VMware NSX许可
  9. 各厂商服务器ESXI最高版本适配情况
  10. linux系统克隆安装教程,使用Clonezilla克隆Linux安装的方法