poj 2833 堆的应用(去若干最大值最小值)

DLMS—Cryptographic algorithms—(Green-Book)加密算法 密码学是数学的一个分支,基于数据的转换,并且可以用来提供多种安全服务:保密性、数据完整性、认证、授权和不可否认性。密码学依赖于两个基本组成部分:算法(或密码学方法)和密钥。算法是一个数学函数,而密钥是在转换过程中使用的参数。密码算法和密钥用于对数据应用密码保护(例如,加密数据或生成数字签名),以及移除或检查保护(例如,解密加密的数据或验证数字签名)。密码哈希函数:这类函数不需要密钥(尽管它们可以以使用密钥的模式使用)。哈希函数通常用作算法的一个组成部分,以提供安全服务。见9.2.3.2节。对称密钥算法。 阅读详情

题意:给定一些正数,去掉给定个数的最大值和给定个数的最小值,输出其余数字的平均数。

思路:建立一个大顶堆,一个小顶堆。大顶堆的大小为去掉的最小值个数,存放当前的若干最小值。遍历数据的同时维护这两个堆,最后堆中的数据即为需要去掉的数据。

输入:

1 2 5
1 2 3 4 5
4 2 10
2121187 902 485 531 843 582 652 926 220 155
0 0 0

输出:

3.500000
562.500000

#include <stdio.h>
#include <string.h>
#define N 15
int n1,n2,n;
int heap1[N],heap2[N];
void update1(int i){
	int x;
	x = heap1[i];
	i <<= 1;
	while(i<=n1){
		if(i+1<=n1 && heap1[i+1]<heap1[i])
			i++;
		if(x > heap1[i])
			heap1[i/2] = heap1[i];
		else
			break;
		i <<= 1;
	}
	heap1[i/2] = x;
}
void update2(int i){
	int x;
	x = heap2[i];
	i <<= 1;
	while(i<=n2){
		if(i+1<=n2 && heap2[i+1]>heap2[i])
			i++;
		if(x < heap2[i])
			heap2[i/2] = heap2[i];
		else
			break;
		i <<= 1;
	}
	heap2[i/2] = x;
}
int main(){
	freopen("a.txt","r",stdin);
	while(scanf("%d %d %d",&n1,&n2,&n)){
		int i,j,k;
		double res = 0;
		if(!n1&&!n2&&!n)
			break;
		for(i = 1;i<=n;i++){
			scanf("%d",&j);
			res += (double)j/(n-n1-n2);
			if(i<=n1){
				heap1[i] = j;
				if(i == n1)
					for(k = n1/2;k>=1;k--)
						update1(k);
			}
			else if(j>heap1[1]){
				heap1[1] = j;
				update1(1);
			}
			if(i<=n2){
				heap2[i] = j;
				if(i == n2)
					for(k = n2/2;k>=1;k--)
						update2(k);
			}
			else if(j<heap2[1]){
				heap2[1] = j;
				update2(1);
			}
		}
		for(i = 1;i<=n1;i++)
			res -= (double)heap1[i]/(n-n1-n2);
		for(i = 1;i<=n2;i++)
			res -= (double)heap2[i]/(n-n1-n2);
		printf("%.6lf\n",res);
	}
	return 0;
}


11. TI MSPM0G3507 DMA传输实战:ADC数据自动搬运与电压采集 本文以TI MSPM0G3507为例,详细讲解了如何利用DMA(直接存储器访问)实现ADC数据的自动搬运与电压采集。通过实战演示,解放CPU资源,提升系统实时性与效率,适用于电赛备赛及嵌入式开发中的数据采集场景。 阅读详情

相关推荐

电流采样电路设计:差分放大与ADC采集详解

在电机控制、电源管理、电池监测等应用中,电流采样是一个关键环节。通常,我们使用小阻值的采样电阻将电流信号转换为电压信号,再通过运放放大后送入ADC进行采集。本文将详细分析一种基于差分放大器的电流采样电路,包括信号放大、参考电压偏置、滤波保护以及ADC转换计算等内容。

W0s477的博客 1万+

POJ 2833(优先队列)

#include<iostream> #include<cstdlib> #include<sstream> #include<cstdio> #include<stack> #include<cstdio> #include<map> #include<set> #include<queue> #include<cstring> #include<cmath> #inclu.

qq_53023076的博客 272

Adams与matlab联合仿真的一些小技巧

Adams与simulink联合仿真之快速设置初值 去年到现在一直做的两个项目要用到Adams与simulnk联合仿真,虽然网上有很多这方面的教程,但都比较基本,要实现一些稍微复杂的要求就比较困难了,比如我需要改变模型的初始位姿,原来的方式是在adams中设置,再生成联合仿真需要的文件,再在matlab中进行调用和仿真,如果工况多的话这样就特别耗时耗力,进过长时间的摸索,终于找出了在matlab中直接改变Adams模型参数的方法,下面具体说明一下。 我这里的模型是一个小球通过弹簧连接在坐标原点,仿真开始后

weixin_40962901的博客 4784

poj2833(优先队列)

#include #include #include #include #include using namespace std; typedef long long ll; int main() { int n1, n2, n; while(scanf("%d%d%d", &n1, &n2, &n) != EOF && (n1 + n2 + n)){

small__snail__5的博客 539

VOWIFI--相关的协议文档

一、3GPP相关协议文档 3GPP 23.402 Architecture enhancements for non-3GPP accesse- //重要 整体框架结构和流程,3GPP和NON-3GPP切换 3GPP 36.304  User Equipment (UE) procedures in idle mode //重要,终端在空闲状态下3GPP与NON-3GPP之间的重选方法   3GP

时九博客 3577

手把手教你学veriolg(二十六)-- Verilog CIC 滤波器设计

目录 Verilog CIC 滤波器设计1. CIC 滤波器的基本原理2. Verilog 实现3. 说明4. 测试激励5. 总结 CIC(Cascade-Integrator-Comb)滤波器是一种特殊的数字滤波器,常用于多速率信号处理中,尤其是用于信号的上采样(插值)和下采样(抽取)。CIC 滤波器的特点在于它具有简单的硬件实现、不需要乘法器(仅使用加法器和延迟元件)、且具有线性相位特性。然而,CIC 滤波器的缺点是它会产生较大的量化误差,因此在设计时需要特别注意字长的选择以避免溢出。1. CIC 滤波

MHD0815的博客 888

G - stl 的 优先队列

stl 的 优先队列题目描述In a speech contest, when a contestant finishes his speech, the judges will then grade his performance. The staff remove the highest grade and the lowest grade and compute the average of

WonderHao' blog 425

建行报专版报道建设银行金融科技发展历程

经过十多年的建设,总行前中后台部门都有了自己的业务系统,但系统“部门”特征显著,渠道、客户、产品的横向整合不足,产品系统层次化、结构化、参数化程度不高,渠道支持产品快速部署以及跨渠道服务能力不足,管理分析类系统建设相对滞后,系统较弱的可扩展能力在应对高速增长的交易量时已疲态尽显,同时安全稳定运行的压力和风险日益积聚。站在新的历史起点上,科技条线将聚焦主责主业,完善信息科技管理体系,紧紧围绕安全生产中心任务,持续推动技术能力复用共享和自主可控,为全行做好金融五篇大文章,推动业务高质量发展提供技术支撑。

银行信息系统应用架构详解 383

POJ 2833 The Average(优先队列)

原题目网址:http://poj.org/problem?id=2833 本题中文翻译: 描述 在演讲比赛中,当选手完成演讲时,评委将对他的演出进行评分。 工作人员删除最高成绩和最低成绩,并计算其余成绩的平均值作为参赛者的最终成绩。 这是一个简单的问题,因为通常只有几名评委。 让我们考虑一下上面问题的一般形式。 给定n个正整数,删除最大的n1和最小的n2,并计算其余的平均值。 ...

anshuo0835的博客 377

【WRF数据准备】基于Python更新geo_em.d0.nc文件中Albedo/LAI等静态地理数据

基于Python更新geo_em.d0.nc文件中Albedo/LAI等静态地理数据

WW、forever的博客 589

【Java核心高阶进阶】44-Java8核心新特性

模块十:Java新特性演进 · 第 1 篇Java 8 是 Java 语言历史上最重要的一次发布,它引入的函数式编程范式从根本上改变了 Java 的编码方式。即便到了 JDK 21 的今天,Lambda、Stream、Optional 仍是日常开发的高频工具。本篇将深入这些特性的语法、原理与底层机制,帮助你不仅会用,更知其所以然。

gaochufukanyongren的博客 24

【POJ No. 2833】 表现评分 The Average

【POJ No. 2833】 表现评分 The Average

代码改变世界 440

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

poj2833 -- The Average

题目地址: http://poj.org/problem?id=2833 题目大意: 给出n个数字,去除其中n1个最大值和n2个最小值,求出剩余的平均值是多少。题目给的数据非常的多,无法全部存下。 解题思路: 找两个优先队列,也就是堆来维护n1个最大值和n2个最小值,最大值的队列为big,最小值为small,如果big.size()>n1的话,就去除掉其中最小的元素,可能有人就问了,这去除掉...

qq_43227036的博客 316

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

poj2833(优先队列)

poj2833 The Average Time Limit: 6000MS   Memory Limit: 10000K Total Submissions: 13177   Accepted: 3926 Case Time Limit: 4000MS Description In a speech contest, when a contestant ...

20164225的博客 640

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

poj -- 2833 The Average(优先队列或堆或直接模拟)

http://poj.org/problem?id=2833     The AverageTime Limit: 6000MS Memory Limit: 10000K Total Submissions: 7443 Accepted: 2288 Case Time Limit: 4000MS Description In a speech contest, when

蓝色污点的专栏 1373

poj 2833 The Average优先队列的应用

题目链接: http://poj.org/problem?id=2833 The Average Time Limit: 6000MS   Memory Limit: 10000K Total Submissions: 13247   Accepted: 3947 Case Time Limit: 4000MS Description In a spe...

Source_Roc 254

poj2833

//============================================================================ // Name : 2833.cpp // Author : // Version : // Copyright : Your copyright notice // Description : Hell

794

poj 2833

给你5000000个数,找出前n1个最大 的和前n2个最小的,由于n1和n2都很小,直接维护两个数组保存要求的最大最小值,每输入一个数字更新两个数组就行了。   #include #include using namespace std; const int inf=100000009; int n1,n2,n,ma[11],mi[11]; int main() { // fre

suressay的专栏 677

POJ2833 The Average 优先队列

题目链接:https://cn.vjudge.net/problem/POJ-2833 题意: 在一组打分中,去掉 n1 个最高分,去掉 n2 个最低分,然后用剩下的分数计算选手得分。 分析: 这道题看起来可以直接把所有的分数存起来,排序一下之后把中间的加起来求平均,但实际上这道题因为数据量太大,这样做就超时了。看题目我们发现 n1 和 n2 两个数据都不超...

左云帆 300

POJ2833The Average【堆排序】

Language: Default The Average Time Limit: 6000MS   Memory Limit: 10000K Total Submissions: 10153   Accepted: 3135 Case Time Limit: 4000MS Description In a spee

走一步再走一步 1079

POJ-2833(第k小的数变形)

【题目描述】 一个数组5000000,去掉n1个最大的,n2个最小的,n1+n2 【解题思路】 方案1:运用快排中第k小的数分别求出两个分界点,再从总数中减去即可,但是有内存限制,不能开这么大的数组,WA了无数次以后MLE了 方案2:用两个数组分别存放最大的n1个数和最小的n2个数,不断更新,然后从总数中减去这两个数组中的内容即可 int main() { ll n1, n2, n;

famousDT的专栏 904

POJ2833 The Average【单调队列】

题目: In a speech contest, when a contestant finishes his speech, the judges will then grade his performance. The staff remove the highest grade and the lowest grade and compute the average of the res...

二喵君的博客 300

优先队列用法以及例题学习

优先队列的另外一种名字叫堆,堆又分为小根堆,大根堆。 小根堆:根为最小值,左右儿子都比根大,所以出队顺序为升序。 大根堆:根为最大值,左右儿子都比根小,所以出队顺序为降序。 在C++ 头文件<queue>中有priority_queue<类型>表示优选队列数据结构 容器类. eg:priority_queue<类型>默认为大根堆 常用操作: push();//入队 top();//队首 与普通queue<>区别 queue 使用 front() po

qq_46256603的博客 501

poj 2833 The Average

http://162.105.81.212/JudgeOnline/problem?id=2833 用Java一直过不了, 提示还是RE,- -||(应该是超时了) 下午用C++把Java代码"翻译"了下, AC... 思路是: 使用1 ≤ n1, n2 ≤ 10这个条件, 维护两个数组G[10],L[10]. 分别用来存放最大的n1个数和最小的n2个数. 一边读入数据一边维护这...

t225com 158
上一篇: poj 3268 dijkstra
下一篇: poj 2411 状态压缩(矩形铺砖)
dumeichen
博客等级 码龄13年 55粉丝 475原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值