当前位置: 首页 > news >正文

myj的补作业计划HrbustOJ新生赛(struct+优先队列)

Description

作为一个合格的大学牲,myj也常常被作业和各种报告所烦恼

这天myj有在准备赶作业,但是在他赶作业和报告的过程中,老师又不停的在布置新的作业和报告,所以myj决定将这些作业使用一个叫做优先级的东西来进行排序,将老师要求尽快完成的作业设置的优先级非常高,而那些可以拖的作业就尽量拖

myj一向奉行“摸鱼,划水,躺平”的学习方式,所以他只会在自己想做作业的时候才做,并且能够瞬间完成这个作业,而做过的作业就会从这个作业序列中移除

对于myj选择哪一份作业做,可以将这个过程做如下描述:myj先会找到优先级最高的作业做,如果存在多个优先级一样的作业,myj会先去完成一个最先被布置下来的作业

现在给你一些询问,要求你对于一些询问输出合适的答案
Input

第一行一个整数T,表示测试数据的组数

对于每组测试数据,第一行有一个整数n,表示下面出现的询问次数

接下来n行,每一行会先输入一个整数(只有1或者2)表示两种操作中的一种,如果是1,表示执行操作1,如果是2,表示执行操作2

操作1:包含一个字符串(无空格,长度小于20)和一个数字,分别表示作业的名字和优先级顺序

操作2:表示这是myj会按照上方的选择方式去选择一份作业完成,并且你需要输出myj完成的作业的名字

输入保证myj在想做作业的时候一定有作业可做

测试数据小于10组

每组数据n不大于100000

对于所有数据n的总和不大于550000

Output
每一行包含一个字符串,表示myj选择的作业
Sample Input

2
6
1 Math 5
1 English 6
1 C++ 0
2
2
2
10
1 a 11
2
1 b 456
1 c 7893
2
1 d 3
1 f 3
2
2
2

Sample Output

English
Math
C++

a

c

b

d

f

Hint

每输出一行都应该有一个换行符

行末没有多余空格

#include<bits/stdc++.h>
using namespace std;
struct node {
	string name;
	int pri;
	bool operator<(const node& that)const {
		return pri < that.pri;//优先队列中需要相反,即这次表示的是从d大到小进行排序;
	}
};
priority_queue<node>q;
queue<string>q2;
int main() {
	int T;
	cin >> T;
	while (T--) {
		int n;
		cin >> n;
		while (n--) {
			int t;
			cin >> t;
			if (t == 1) {
				//结构体放入优先队列中
				node work;
				string s;
				int num;
				cin >> s >> num;
				work.name = s;
				work.pri = num;
				q.push(work);
			}
			else {
				q2.push(q.top().name);
				q.pop();	
			}
		}
		while (!q2.empty()) {
			cout<<q2.front()<<endl;
			q2.pop();
		}
	}
}

 测试了多个样例都能通过,但是wrong answer,实在无法找出bug;

相关文章:

  • canal的入门与使用
  • 病毒营销增长策略:Facebook和 Airbnb的5个病毒传播方法
  • C++:特殊类设计
  • Spring如何记忆
  • 材料科学基础学习指导-吕宇鹏-名词和术语解释-第二章晶体缺陷
  • 线段树2----简单拓展
  • 【学姐面试宝典】前端基础篇Ⅳ(JavaScript)
  • 本地JAR文件作为Gradle依赖项
  • Linux软件安装的4种方式
  • 自然语言处理Transformer模型最详细讲解(图解版)
  • JVM的组成
  • 【Rust日报】2022-10-15 Frui: 一个rust写的开发者友好的UI框架
  • Text Preprocessing - 文本预处理(RNN循环神经网络)
  • 【JavaScript设计模式】观察者模式
  • 【漏洞复现-splunk-信息泄露】vulfocus/splunk-cve_2018_11409
  • 【407天】跃迁之路——程序员高效学习方法论探索系列(实验阶段164-2018.03.19)...
  • 【挥舞JS】JS实现继承,封装一个extends方法
  • Angular 2 DI - IoC DI - 1
  • CSS 提示工具(Tooltip)
  • ES学习笔记(10)--ES6中的函数和数组补漏
  • Hibernate【inverse和cascade属性】知识要点
  • javascript从右向左截取指定位数字符的3种方法
  • javascript数组去重/查找/插入/删除
  • JS正则表达式精简教程(JavaScript RegExp 对象)
  • KMP算法及优化
  • MySQL Access denied for user 'root'@'localhost' 解决方法
  • Python爬虫--- 1.3 BS4库的解析器
  • 分布式事物理论与实践
  • 函数式编程与面向对象编程[4]:Scala的类型关联Type Alias
  • 基于MaxCompute打造轻盈的人人车移动端数据平台
  • 记录:CentOS7.2配置LNMP环境记录
  • 开源中国专访:Chameleon原理首发,其它跨多端统一框架都是假的?
  • 三栏布局总结
  • 系统认识JavaScript正则表达式
  • ​DB-Engines 12月数据库排名: PostgreSQL有望获得「2020年度数据库」荣誉?
  • #ifdef 的技巧用法
  • (12)目标检测_SSD基于pytorch搭建代码
  • (二)斐波那契Fabonacci函数
  • (五)MySQL的备份及恢复
  • (一一四)第九章编程练习
  • **Java有哪些悲观锁的实现_乐观锁、悲观锁、Redis分布式锁和Zookeeper分布式锁的实现以及流程原理...
  • .“空心村”成因分析及解决对策122344
  • .NET CORE Aws S3 使用
  • .net 程序 换成 java,NET程序员如何转行为J2EE之java基础上(9)
  • .NET 自定义中间件 判断是否存在 AllowAnonymousAttribute 特性 来判断是否需要身份验证
  • .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例
  • .net反编译的九款神器
  • .stream().map与.stream().flatMap的使用
  • :“Failed to access IIS metabase”解决方法
  • [ 英语 ] 马斯克抱水槽“入主”推特总部中那句 Let that sink in 到底是什么梗?
  • [2013][note]通过石墨烯调谐用于开关、传感的动态可重构Fano超——
  • [3D基础]理解计算机3D图形学中的坐标系变换
  • [⑧ADRV902x]: Digital Pre-Distortion (DPD)学习笔记
  • [BZOJ2208][Jsoi2010]连通数
  • [DM复习]关联规则挖掘(下)