UVA11995I Can Guess the Data Structure!(stack + queue + priority_queue)

2024-08-24 04:18

本文主要是介绍UVA11995I Can Guess the Data Structure!(stack + queue + priority_queue),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

题目:UVA11995I Can Guess the Data Structure!(stack + queue + priority_queue)


题目大意:给你两种指令,1代表让1后面的数字进入这个数据结构,2代表无差错的从数据结构中取出这个数字,问这个数据结构是stack还是queue还是priority_queue,还是不确定,还是以上均不可能。


解题思路:用STL中的这些数据结构来模拟一下,模拟成功就是这种数据结构,注意pop的时候要判断是否empty。


代码:

#include <cstdio>
#include <cstring>
#include <queue>
#include <stack>using namespace std;const int N = 1005;int n;
int op[N][2];queue<int> q;
stack<int> s;
priority_queue<int> p;bool is_queue () {while (!q.empty()) {q.pop();}for (int i = 0; i < n; i++) {if (op[i][0] == 1)q.push(op[i][1]);else {if (!q.empty() && q.front() == op[i][1])q.pop();elsereturn false;}}return true;
}bool is_priority_queue () {while (!p.empty()) {p.pop();}for (int i = 0; i < n; i++) {if (op[i][0] == 1)p.push(op[i][1]);else {if (!p.empty() && p.top() == op[i][1])p.pop();elsereturn false;}}return true;
}bool is_stack () {while (!s.empty()) {s.pop();}for (int i = 0; i < n; i++) {if (op[i][0] == 1)s.push(op[i][1]);else {if (!s.empty() && s.top() == op[i][1])s.pop();elsereturn false;}}return true;
}int main () {while (scanf ("%d", &n) != EOF) {for (int i = 0; i < n; i++)scanf ("%d%d", &op[i][0], &op[i][1]);			bool f1 = is_stack();bool f2 = is_queue();bool f3 = is_priority_queue();if (f1 && !f2 && !f3)printf ("stack\n");else if (!f1 && f2 && !f3)printf ("queue\n");else if (!f1 && !f2 && f3)printf ("priority queue\n");else if (!(f1 | f2 | f3))printf ("impossible\n");elseprintf ("not sure\n");}return 0;
}


这篇关于UVA11995I Can Guess the Data Structure!(stack + queue + priority_queue)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1101420

相关文章

C++——stack、queue的实现及deque的介绍

目录 1.stack与queue的实现 1.1stack的实现  1.2 queue的实现 2.重温vector、list、stack、queue的介绍 2.1 STL标准库中stack和queue的底层结构  3.deque的简单介绍 3.1为什么选择deque作为stack和queue的底层默认容器  3.2 STL中对stack与queue的模拟实现 ①stack模拟实现

论文翻译:arxiv-2024 Benchmark Data Contamination of Large Language Models: A Survey

Benchmark Data Contamination of Large Language Models: A Survey https://arxiv.org/abs/2406.04244 大规模语言模型的基准数据污染:一项综述 文章目录 大规模语言模型的基准数据污染:一项综述摘要1 引言 摘要 大规模语言模型(LLMs),如GPT-4、Claude-3和Gemini的快

ActiveMQ—Queue与Topic区别

Queue与Topic区别 转自:http://blog.csdn.net/qq_21033663/article/details/52458305 队列(Queue)和主题(Topic)是JMS支持的两种消息传递模型:         1、点对点(point-to-point,简称PTP)Queue消息传递模型:         通过该消息传递模型,一个应用程序(即消息生产者)可以

CentOS下mysql数据库data目录迁移

https://my.oschina.net/u/873762/blog/180388        公司新上线一个资讯网站,独立主机,raid5,lamp架构。由于资讯网是面向小行业,初步估计一两年内访问量压力不大,故,在做服务器系统搭建的时候,只是简单分出一个独立的data区作为数据库和网站程序的专区,其他按照linux的默认分区。apache,mysql,php均使用yum安装(也尝试

使用Spring Boot集成Spring Data JPA和单例模式构建库存管理系统

引言 在企业级应用开发中,数据库操作是非常重要的一环。Spring Data JPA提供了一种简化的方式来进行数据库交互,它使得开发者无需编写复杂的JPA代码就可以完成常见的CRUD操作。此外,设计模式如单例模式可以帮助我们更好地管理和控制对象的创建过程,从而提高系统的性能和可维护性。本文将展示如何结合Spring Boot、Spring Data JPA以及单例模式来构建一个基本的库存管理系统

15 组件的切换和对组件的data的使用

划重点 a 标签的使用事件修饰符组件的定义组件的切换:登录 / 注册 泡椒鱼头 :微辣 <!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta http-equiv="X-UA-

12C 新特性,MOVE DATAFILE 在线移动 包括system, 附带改名 NID ,cdb_data_files视图坏了

ALTER DATABASE MOVE DATAFILE  可以改名 可以move file,全部一个命令。 resue 可以重用,keep好像不生效!!! system照移动不误-------- SQL> select file_name, status, online_status from dba_data_files where tablespace_name='SYSTEM'

Java-数据结构-栈和队列-Stack和Queue (o゚▽゚)o

文本目录: ❄️一、栈(Stack):     ▶ 1、栈的概念:   ▶ 2、栈的使用和自实现:      ☑ 1)、Stack():       ☑ 2)、push(E e):      ☑ 3)、empty():         ☑ 4)、peek(E e):        ☑ 5)、pop(E e):       ☑ 6)、size(E e):  ▶ 3、栈自实现的总代

SIGMOD-24概览Part7: Industry Session (Graph Data Management)

👇BG3: A Cost Effective and I/O Efficient Graph Database in ByteDance 🏛机构:字节 ➡️领域: Information systems → Data management systemsStorage management 📚摘要:介绍了字节新提出的ByteGraph 3.0(BG3)模型,用来处理大规模图结构数据 背景

java.sql.SQLException: No data found

Java代码如下: package com.accord.utils;import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.ResultSetMetaData;import