poj 2833 The Average(堆)】的更多相关文章

题目链接:http://poj.org/problem?id=2833 思路分析:由于数据量较大,超出存储范围,使用不能使用数组存储数据在进行排序.考虑维护一个最大堆与最小堆,依次读取数据, 记录数据中的n1个最大数字与n2个最小数据,所有数据累计和减去堆中数据即可.注意使用记录n2个最大数据要使用最小堆,因为每 一个数据需要与该堆中最小值比较,同理,记录n1个最小数据要使用最大堆. 代码如下: #include <iostream> #include <queue> using…
原题目网址:http://poj.org/problem?id=2833 本题中文翻译: 描述 在演讲比赛中,当选手完成演讲时,评委将对他的演出进行评分. 工作人员删除最高成绩和最低成绩,并计算其余成绩的平均值作为参赛者的最终成绩. 这是一个简单的问题,因为通常只有几名评委. 让我们考虑一下上面问题的一般形式. 给定n个正整数,删除最大的n1和最小的n2,并计算其余的平均值. 输入 输入由几个测试用例组成. 每个测试用例由两行组成. 第一行包含三个整数n1,n2和n(1≤n1,n2≤10,n1…
做这道题的动机就是想练习一下堆的应用,顺便补一下好久没看的图论算法. Dijkstra算法概述 //从0出发的单源最短路 dis[][] = {INF} ReadMap(dis); for i = 0 -> n - 1 d[i] = dis[0][i] while u = GetNearest(1 .. n - 1, !been[]) been[u] = 1 for_each edge from u d[edge.v] = min(d[edge.v], d[u] + dis[u][edge.v]…
题目链接:http://poj.org/problem?id=2442 题目大意:给出一个m*n的矩阵,从每一行中取出一个数相加.能得到n^m个不同的结果.要求输出当中前n项. 建立一个以n元数组为底层数组的堆,在这里,利用stl中的make_heap,pop_heap.push_heap等函数解决. 1.将第一组数据输入arr1数组.升序排序. 2.将接下来的数据输入到arr2数组中.而且heap[i]=arr1[0]+arr2[0...n-1].make_heap(heap,heap+n).…
由于,这两题有着似乎一样的解法所以将其放在一起总结比較,以达到更好的区分二者的差别所在. 一.区间DP uva的Cutting Sticks是一道典型的模板题. 题目描写叙述: 有一根长度为l的木棍,木棍上面有m个分割点,每一次分割都要付出当前木棍长度的代价,问如何分割有最小代价. 区间DP的定义: 区间动态规划问题一般都是考虑.对于每段区间,他们的最优值都是由几段更小区间的最优值得到,是分治思想的一种应用.将一个区间问题不断划分为更小的区间直至一个元素组成的区间,枚举他们的组合,求合并后的最优…
题目:http://www.wikioi.com/problem/1307/ 题意:给你一个树,上面有n个节点,每个节点都有一个价值p,求一个n个节点的排列顺序,是的Σi*p[i]最小(要求父节点一定要在子节点的前面) 分析: 首先如果没有父节点和子节点,那么这题就是一道弱弱的排序题,根据排序不等式,策略就是p越大的就放越前面 虽然此题有了这样的限制,但是肯定也希望P越大的在前面越好,那么对于一个点它能放的最大的在哪里呢?当然是紧接在它父节点的位置后面!!!! 于是我们可以先把每个点的权值加入优…
题目: http://poj.org/problem?id=1442 开始用二叉排序树写的,TLE了,改成优先队列,过了.. 两个版本都贴一下吧,赚稿费.. #include <stdio.h> #include <queue> #include <vector> using namespace std; priority_queue<int>qmax; priority_queue<int, vector<int>, greater<…
Black Box Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 7099   Accepted: 2888 Description Our Black Box represents a primitive database. It can save an integer array and has a special i variable. At the initial moment Black Box is empt…
Description It is said that 90% of frosh expect to be above average in their class. You are to provide a reality check. Input The first line of standard input contains an integer C, the number of test cases. C data sets follow. Each data set begins w…
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 the elements received so far. Input The first line of input contains a single int…