acm刷题

1.STL栈

  hdu 1237 ‘简单计算器’

2.STL 优先队列 priority_queue

  hdu 1873 看病要排队

#include<iostream>
#include<queue>
//加这个文件是因为杭电的oj不行
#include<string>
using namespace std;

struct Node{
    int n, p;
    bool operator < (const Node &t) const {
        if (p == t.p) return n > t.n;
        return p < t.p;
    }
}node;

int main() {
    int n, id, doc;
    string temp;
    //没有输入scanf返回-1
    while (~scanf("%d", &n)) {
        id = 0;
        priority_queue<Node> q[3];
        while (n--) {
            cin>>temp;
            if (temp == "IN") {
                scanf("%d%d", &doc, &node.p);
                node.n = ++id;
                q[doc - 1].push(node);
            }else {
                scanf("%d", &doc);
                if (q[doc - 1].empty())
                    cout << "EMPTY" << endl;
                else {
                    node = q[doc - 1].top();
                    q[doc - 1].pop();
                    cout << node.n<<endl;
                }
            }
        }
    }
    return 0;
}

原文地址:https://www.cnblogs.com/zyyz1126/p/11806476.html

时间: 2024-11-05 23:30:44

acm刷题的相关文章

ACM 刷题小技巧【转】

转载自URl-team ACM做题过程中的一些小技巧. 1.一般用C语言节约空间,要用C++库函数或STL时才用C++; cout.cin和printf.scanf最好不要混用. 大数据输入输出时最好不要用cin.cout,防止超时. 2.有时候int型不够用,可以用long long或__int64型(两个下划线__). 值类型表示值介于 -2^63 ( -9,223,372,036,854,775,808) 到2^63-1(+9,223,372,036,854,775,807 )之间的整数.

acm刷题记录

我感觉毫无目的地刷题没有意义,便记录每周的刷题,以此激励自己! ----------6.6-------- [vijos1055]奶牛浴场                                      最大化               推荐IOI论文<浅谈用极大化思想解决最大子矩形问题> codeforces 679B - Bear and Tower of Cubes      xjb搞 codeforces  680A - Bear and Five Cards       

ACM刷题需要注意关于输入输出的问题

下面总结一下刷题需要注意的问题: 1. scanf函数返回值就是读出的变量个数,没有读到数据返回-1,EOF是一个预定义的常量,为-1: 2. scanf函数读入数据,不能规定精度.如:scanf("%7.2f", &n);是不合法的: 3. C语言不支持在for语句里定义变量.如:for(int i=0; i<4; i++)是不合法的. 三种输入: 1. 数据量不定的情况:用while(scanf("%d", &n) != EOF); 2.

ACM刷题常用链接

武汉科技大学  http://acm.wust.edu.cn/ 华中科技大学 http://acm.hust.edu.cn/vjudge/toIndex.action 杭州电子科技大学  http://acm.hdu.edu.cn/listproblem.php?vol=1 北京大学  http://poj.org/ 浙江大学 http://acm.zju.edu.cn/onlinejudge/showProblemsets.do 湖南大学 http://acm.hnu.cn/ RQNOJ ht

Oyk的ACM刷题记录(始于2015年2月29日,可能含剧透)

Online Judge 题目序号/题目 简单大意/题解 犯2情况 2月29日 SPOJ GSS1  不带更新区间最大子段和. 线段树维护 区间从左/右开始的最大值.区间最大值.区间和. 1.输出忘了换行. 2.打错了一个字母. SPOJ GSS2 区间不重复最大子段和. 离线维护s[i..now],线段树维护 区间历史最大值.区间历史最大更新值.区间现在最大值.区间现在更新值. 询问输出区间历史最大值. 1.线段树询问忘记写pushdown了. SPOJ TEST 输出所有42前的数. 1.不

ACM 刷题错误总结 持续更新并持续回顾中o(╯□╰)o

一.段错误/RE 1.& 变量取地址 2.数组越界 3.爆栈, 很可能是死循环,ruturn的边界没有处理好,或者是递归的内容里有死循环的部分. 4.线段树 逢写必错,都是build(i*2+1,tmp.mid+1,r);这里忘记加一了. 二.一些莫名其妙的逻辑错误 1.多重的if else 检查是不是有问题,写if else一定要把所有的可能情况罗列,以保证没有逻辑错误.if else 一定把所有的情况逻辑都理清,这题Debug的时候稍微变了下写法,又WA了很久,代码也贴在后面了.Debug的

acm比赛刷题小技巧

ACM做题过程中的一些小技巧. 1.一般用C语言节约空间,要用C++库函数或STL时才用C++; cout.cin和printf.scanf最好不要混用. 大数据输入输出时最好不要用cin.cout,防止超时. 2.有时候int型不够用,可以用long long或__int64型(两个下划线__). 值类型表示值介于 -2^63 ( -9,223,372,036,854,775,808) 到2^63-1(+9,223,372,036,854,775,807 )之间的整数. printf("%I6

半个暑假的刷题有感

这半个多月一来,主要是在刷DP.开始是一些简单的DP(可是我没有感觉有多简单=_=!!),然后是最大连续子序列,最大公共子序列,最大子矩阵等等,这些题目还好,有的题目甚至可以模板化. 还有一些没有解决的难题: 1024 Max Sum Plus Plus 最大m段不重叠子段和](可不连续)1244 Max Sum Plus Plus Plus [最大m段不重叠子段和](连续) 1074 Doing Homework [压缩dp](这个题整个程序都在用位运算,让我这个小白情何以堪啊) 还有记忆化搜

轻院 2177 小姐姐的忠告:少吃辣条多刷题

题目链接:https://acm.zzuli.edu.cn/zzuliacm/problem.php?id=2177 题目大意:n个球放入n个箱子中,每个箱子放一个.每个球都是独一无二的,问方案数能被最大2的几次方整除. 解题思路:很明显方案数目就是n!,而所求的实际上是2~n中每个数的中有几个2.显然奇数可忽略,对于1~n的所有偶数来说,一次除二之后所有数都缩小了一半,即相当于求1~n/2的所有偶数,反复如此,可以很快得到思路. 代码: 1 const int inf = 0x3f3f3f3f