6127:Largest Average
#include<bits/stdc++.h>
using namespace std;
int a[100001];
double ave[100001];
struct student{
int i;
double ave;
};
student stu[100001]; bool cmp(const student &s1,const student &s2){
if(s1.ave==s2.ave){
return s1.i<s2.i;
}else{
return s1.ave>s2.ave;
}
} int main(){
priority_queue<int,vector<int>,greater<int> > q;
int n;
while(cin>>n){
memset(stu,0,sizeof(student)*n);
memset(a,0,sizeof(a));
memset(ave,0,sizeof(ave));
for(int i=0;i<n;++i){
scanf("%d",&a[i]);
}
double s=0;
for(int i=n-1;i>0;i--){
if(i!=n-1){
if(a[i]<q.top()){ //如果这个数比队列中最小的值还小,算平均值的时候先没放进队列
int ss=q.size();
ave[i]=s*1.0/ss;
stu[i].ave=ave[i];
stu[i].i=i;
q.push(a[i]); //最后再放进队列
}else{ //如果这个数比队列中最小的值大
q.push(a[i]); //把这个数放进队列
int x=q.top();
q.pop(); //把队列中最小的值弹出
int ss=q.size();
ave[i]=(s+a[i]-x)*1.0/ss; //算出平均值
stu[i].ave=ave[i];
stu[i].i=i;
q.push(x); //最后把最小的值压回去队列
}
}else{
q.push(a[i]);
ave[i]=a[i];
stu[i].ave=ave[i];
stu[i].i=i;
}
s+=a[i];
//printf("%d %.2f\n",stu[i].i,stu[i].ave);
}
sort(stu,stu+n,cmp);
cout<<stu[0].i;
for(int i=1;i<n;++i){
if(stu[i].ave==stu[0].ave&&stu[i].i<=n-2){
cout<<" "<<stu[i].i;
}else{
break;
}
}
while(!q.empty()){
q.pop();
}
cout<<endl;
}
}
6127:Largest Average的更多相关文章
- LeetCode之“排序”:Largest Number
题目链接 题目要求: Given a list of non negative integers, arrange them such that they form the largest numbe ...
- Leetcode:Largest Number详细题解
题目 Given a list of non negative integers, arrange them such that they form the largest number. For e ...
- LeetCode第[84]题(Java):Largest Rectangle in Histogram(最大的矩形柱状图)
题目:最大的矩形柱状图 难度:hard 题目内容: Given n non-negative integers representing the histogram's bar height wher ...
- LeetCode OJ:Largest Number(最大数字)
Given a list of non negative integers, arrange them such that they form the largest number. For exam ...
- HDU 5461:Largest Point
Largest Point Time Limit: 1500/1000 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Others) To ...
- HDU1506: Largest Rectangle in a Histogram(最大子矩阵,好题动态优化左右边界)
题目:http://acm.hdu.edu.cn/showproblem.php?pid=1506 刚开始没考虑时间复杂度,直接敲了,直接tle了,之后没有思路,然后看题解,看见大神写的优化非常棒. ...
- POJ2559:Largest Rectangle in a Histogram
浅谈栈:https://www.cnblogs.com/AKMer/p/10278222.html 题目传送门:http://poj.org/problem?id=2559 贪心的想,最大的子矩阵顶部 ...
- AtCoder Grand Contest 009 E:Eternal Average
题目传送门:https://agc009.contest.atcoder.jp/tasks/agc009_e 题目翻译 纸上写了\(N\)个\(1\)和\(M\)个\(0\),你每次可以选择\(k\) ...
- AGC009:Eternal Average
传送门 好神啊 直接考虑一棵 \(n+m\) 个叶子的 \(k\) 叉树,根结点权值为 \(\sum_{i\in m}(\frac{1}{k})^{deep_i}\) 对于一个 \(deep\) 的序 ...
随机推荐
- Centos7安装(本文档采用CentOS7 mini版本)
选择[语言],点击[继续]等待出现以下界面 一.下载 centos: centos/7/isos/x86_64/CentOS-7-x86_64-Minimal-1611.iso 二.VMware Wo ...
- centos 8.x系统配置chrony时间同步服务
redhat/centos 7.x默认使用的时间同步服务为ntp服务,但是从redhat/centos 8开始在官方的仓库中移除了ntp软件,换成默认的chrony进行时间同步的服务,虽然也可以通过添 ...
- ATM_tests
ATM取款机练习程序 一.程序分析 自顶向下.逐步细化 按照程序执行的流程,将程序分解为若干个功能相对独立的函数(方法),每个函数(方法)负责某一功能,然后根据程序执行的流程,将函数(方法)组装(调用 ...
- Spring Boot Security 国际化 多语言 i18n 趟过巨坑
网上很多的spring boot国际化的文章都是正常情况下的使用方法 如果你像我一样用了Spring Security 那么在多语言的时候可能就会遇到一个深渊 Spring Security里面的异常 ...
- [从源码学设计]蚂蚁金服SOFARegistry之续约和驱逐
[从源码学设计]蚂蚁金服SOFARegistry之续约和驱逐 目录 [从源码学设计]蚂蚁金服SOFARegistry之续约和驱逐 0x00 摘要 0x01 业务范畴 1.1 失效剔除 1.2 服务续约 ...
- Docker学习笔记之创建Ubuntu基础镜像
在创建基础镜像之前需要安装Bootstrap工具debootstrap,所以执行命令: sudo apt install debootstrap 软件安装完成后就可以使用debootstrap工具下载 ...
- --safe-user-create
此参数如果启用,用户将不能用grant语句创建新用户,除非用户有mysql数据库中user表的insert权限, ./mysqld_safe --safe-user-create & 用-- ...
- java 不利用第三个变量的情况下将值互换
package com.zcj.eg001; public class VarChange { public static void main(String[] args) { int a = 10; ...
- CentOS 7 下安装 mysql ,以及用到的命令
VMware虚拟机装好后,再装个CentOS7系统,以上环境自行百度... 一.Linux下查看mysql是否安装 1.指令ps -ef|grep mysql [root@localhost 桌面]# ...
- IDEA安装codota插件和使用,开发人员的知心伙伴
打开IDEA 点击左上角的File之后,如下图 成功后如图所示