1. #include<bits/stdc++.h>
  2. using namespace std;
  3. int a[100001];
  4. double ave[100001];
  5. struct student{
  6. int i;
  7. double ave;
  8. };
  9. student stu[100001];
  10.  
  11. bool cmp(const student &s1,const student &s2){
  12. if(s1.ave==s2.ave){
  13. return s1.i<s2.i;
  14. }else{
  15. return s1.ave>s2.ave;
  16. }
  17. }
  18.  
  19. int main(){
  20. priority_queue<int,vector<int>,greater<int> > q;
  21. int n;
  22. while(cin>>n){
  23. memset(stu,0,sizeof(student)*n);
  24. memset(a,0,sizeof(a));
  25. memset(ave,0,sizeof(ave));
  26. for(int i=0;i<n;++i){
  27. scanf("%d",&a[i]);
  28. }
  29. double s=0;
  30. for(int i=n-1;i>0;i--){
  31. if(i!=n-1){
  32. if(a[i]<q.top()){ //如果这个数比队列中最小的值还小,算平均值的时候先没放进队列
  33. int ss=q.size();
  34. ave[i]=s*1.0/ss;
  35. stu[i].ave=ave[i];
  36. stu[i].i=i;
  37. q.push(a[i]); //最后再放进队列
  38. }else{ //如果这个数比队列中最小的值大
  39. q.push(a[i]); //把这个数放进队列
  40. int x=q.top();
  41. q.pop(); //把队列中最小的值弹出
  42. int ss=q.size();
  43. ave[i]=(s+a[i]-x)*1.0/ss; //算出平均值
  44. stu[i].ave=ave[i];
  45. stu[i].i=i;
  46. q.push(x); //最后把最小的值压回去队列
  47. }
  48. }else{
  49. q.push(a[i]);
  50. ave[i]=a[i];
  51. stu[i].ave=ave[i];
  52. stu[i].i=i;
  53. }
  54. s+=a[i];
  55. //printf("%d %.2f\n",stu[i].i,stu[i].ave);
  56. }
  57. sort(stu,stu+n,cmp);
  58. cout<<stu[0].i;
  59. for(int i=1;i<n;++i){
  60. if(stu[i].ave==stu[0].ave&&stu[i].i<=n-2){
  61. cout<<" "<<stu[i].i;
  62. }else{
  63. break;
  64. }
  65. }
  66. while(!q.empty()){
  67. q.pop();
  68. }
  69. cout<<endl;
  70. }
  71. }

6127:Largest Average的更多相关文章

  1. LeetCode之“排序”:Largest Number

    题目链接 题目要求: Given a list of non negative integers, arrange them such that they form the largest numbe ...

  2. Leetcode:Largest Number详细题解

    题目 Given a list of non negative integers, arrange them such that they form the largest number. For e ...

  3. LeetCode第[84]题(Java):Largest Rectangle in Histogram(最大的矩形柱状图)

    题目:最大的矩形柱状图 难度:hard 题目内容: Given n non-negative integers representing the histogram's bar height wher ...

  4. LeetCode OJ:Largest Number(最大数字)

    Given a list of non negative integers, arrange them such that they form the largest number. For exam ...

  5. HDU 5461:Largest Point

    Largest Point Time Limit: 1500/1000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others) To ...

  6. HDU1506: Largest Rectangle in a Histogram(最大子矩阵,好题动态优化左右边界)

    题目:http://acm.hdu.edu.cn/showproblem.php?pid=1506 刚开始没考虑时间复杂度,直接敲了,直接tle了,之后没有思路,然后看题解,看见大神写的优化非常棒. ...

  7. POJ2559:Largest Rectangle in a Histogram

    浅谈栈:https://www.cnblogs.com/AKMer/p/10278222.html 题目传送门:http://poj.org/problem?id=2559 贪心的想,最大的子矩阵顶部 ...

  8. AtCoder Grand Contest 009 E:Eternal Average

    题目传送门:https://agc009.contest.atcoder.jp/tasks/agc009_e 题目翻译 纸上写了\(N\)个\(1\)和\(M\)个\(0\),你每次可以选择\(k\) ...

  9. AGC009:Eternal Average

    传送门 好神啊 直接考虑一棵 \(n+m\) 个叶子的 \(k\) 叉树,根结点权值为 \(\sum_{i\in m}(\frac{1}{k})^{deep_i}\) 对于一个 \(deep\) 的序 ...

随机推荐

  1. 风炫安全web安全学习第三十二节课 Python代码执行以及代码防御措施

    风炫安全web安全学习第三十二节课 Python代码执行以及代码防御措施 Python 语言可能发生的命令执行漏洞 内置危险函数 eval和exec函数 eval eval是一个python内置函数, ...

  2. 吃透论文——推荐算法不可不看的DeepFM模型

    大家好,我们今天继续来剖析一些推荐广告领域的论文. 今天选择的这篇叫做DeepFM: A Factorization-Machine based Neural Network for CTR Pred ...

  3. win10中安装Linux子系统

    前言 Win10的Linux子系统闻名已久,今天就来操作一下 正文 限制 该功能是win10 1809 及之后才加入的功能,故请先核对版本. 开启功能 打开windows设置 设置 -> 更新和 ...

  4. C++ 简单输出当前日期时间

    根据https://www.runoob.com/cplusplus/cpp-date-time.html编写. 首先介绍2个数据类型. 一个是time_t,与时间函数相关的变量,定义的变量记录着自 ...

  5. cookie和session会话技术

    因为http协议是无状态的,也就是说每个客户端访问服务器端资源时,服务器并不知道该客户端是谁,所以需要会话技术识别客户端状态.会话技术是帮助服务器记住客户端状态的. 一次会话的开始是通过浏览器访问某个 ...

  6. mmall商城购物车模块总结

    购物车模块的设计思想 购物车的实现方式有很多,但是最常见的就三种:Cookie,Session,数据库.三种方法各有优劣,适合的场景各不相同.Cookie方法:通过把购物车中的商品数据写入Cookie ...

  7. ClickHouse安装使用(单机、集群、高可用)

    Clickhouse版本:20.3.6.40-2 安装包地址:https://repo.yandex.ru/clickhouse/rpm/stable/x86_64/ 一.单机版 1.安装依赖 yum ...

  8. ORA-00054: 資源正被使用中, 請設定 NOWAIT 來取得它, 否則逾時到期

    1.查看被使用资源的OBJECT_ID SELECT *FROM DBA_OBJECTS WHERE OBJECT_NAME='OBJECT_NAME' 2.查看资源被谁占用SELECT * FROM ...

  9. C++:I/O流的概念和流类库的结构

    一.C++输入输出包含以下三个方面的内容: 对系统指定的标准设备的输入和输出.即从键盘输入数据,输出到显示器屏幕.这种输入输出称为标准的输入输出,简称标准I/O. 以外存磁盘文件为对象进行输入和输出, ...

  10. [Usaco2008 Mar]River Crossing渡河问题

    题目描述 Farmer John以及他的N(1 <= N <= 2,500)头奶牛打算过一条河,但他们所有的渡河工具,仅仅是一个木筏. 由于奶牛不会划船,在整个渡河过程中,FJ必须始终在木 ...