HDU - 3282 优先队列的使用】的更多相关文章

题意: 按照顺序给你n个数,当数的数量是奇数的时候就输出它们的中位数 题解: 优先队列默认是大顶堆,即priority_queue.top()是这个队列中的最大值 那么我们就可以先创造一个大顶堆优先队列qmax,和一个小顶堆qmin qmin里面放的是大于等于中位数的数,qmax里面放的是比中位数小的数 因为qmin是小顶堆,那么qmin.top()肯定就是中位数 (上面的话是在中位数的前提下) 代码: 1 #include <bits/stdc++.h> 2 using namespace…
题目连接 http://acm.hdu.edu.cn/showproblem.php?pid=3282 Running Median Description For this problem, you will write a program that reads in a sequence of 32-bit signed integers. After each odd-indexed value is read, output the median (middle value) of th…
Running Median Time Limit: 1 Sec  Memory Limit: 256 MB 题目连接 http://acm.hdu.edu.cn/showproblem.php?pid=3282 Description For this problem, you will write a program that reads in a sequence of 32-bit signed integers. After each odd-indexed value is read…
用到优先队列 #include<iostream> #include<string> #include<algorithm> #include<cstdio> #include<vector> #include<queue> #define N 1000005 using namespace std; struct Node { int r,l,id; bool operator <(Node a) const{return l…
The kth great number Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65768/65768 K (Java/Others)Total Submission(s): 10390    Accepted Submission(s): 4153 Problem Description Xiao Ming and Xiao Bao are playing a simple Numbers game. In a roun…
题目:这里 题意: 两个类似于栈的列表,栈a和栈b,n个操作,push a x表示把数x放进a栈的栈底,pop b 表示将栈b的栈顶元素取出输出,并释放这个栈顶元素,merge a b表示把后面的那个 栈里的元素全部压进前面的那个栈里面,并且压入后前面的栈的所有元素按其进栈顺序排列然后后面的栈变为了空. push和pop操作都还好,就是优先队列或者栈的操作,主要是merge操作,如果啊按照题目来模拟每次将后面的栈元素取出放入前面的栈,可能会超时,而超时的主要因素是每次都将 元素多的栈压入了元素少…
进一步学习了优先队列的用法 题意:一只小动物在直线上走,起始位置为零,之后会出现食物,动物要去距离自己最短的食物那,若两边的食物距离相等,则选择之前走的方向的食物 0 x,代表x的位置出现了食物,1代表去吃一个食物 #include<stdio.h> #include<queue> #include<iostream> #include<algorithm> using namespace std; struct cmp { bool operator()(…
用优先队列储存每个人的初始距离和编号,每轮求出最快的人,然后pop掉 一开始想遍历队列的,后来发现队列没办法遍历,汗-_-! 题意,给几个第一秒冲出的距离和以后速度,求每秒后最前面人的编号,求完后最前面的退出 2 3 100 1 100 2 3 100 5 1 1 2 2 3 3 4 1 3 4 Case #1: 1 3 2 Case #2: 4 5 3 2 1 Hint The first case: 1st Second end Player1 100m (BOOM!!) Player2 1…
本来应当是一道优先队列或者堆的题 因为每个数都应该是已经得到的数*2 *3 *5 *7而得到的 但是 2*7 大于 3*2 这就必须保证每次取得都是没有拿过的最小的数 但是它主动降低难度在样例里卖了个萌 n的范围是1~5842 而第5842在样例里给出了..所以我们在取出一个数 求出它的*2 *3 *5 *7的时候做一下判断 如果大于最后一位就直接break 因为相乘的顺序在 可以省一点时间 在判断某个数是否出现过的时候 开不出那么大的vis数组 所以直接for循环从ans数组中寻找 所幸没有超…
Continuous Same Game (1) Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 410    Accepted Submission(s): 143 Problem Description Continuous Same Game is a simple game played on a grid of colored…