题面:自己读,甲级题面自己读;
神奇的做法 一开始以为就是一个堆栈的模拟 没考虑到复杂度写到一半发现 查找中位数的复杂度实在是太高了O(nnlog) 那不就裂开了嘛

后来想到 中位数 可以单独维护一个数组什么的就可以了 就去自己的知识图谱里去找有没有可以维护的一个知识点 说到查找就想到了一个二分 然而二分的是有序 的数组 而且得连续 然后瞄了一眼数据范围 发现友好的n(1e5)想到这点 就想到了 树状数组去维护一个数字出现的次数 然后query 查询的复杂度是O(log(maxn))的那就有思路了 开干

//Andong 20201107
#include<bits/stdc++.h>
#define ne (i&-i)
using namespace std;
const int maxn = 1e5+10;
vector<int>num;int tree[maxn];
int CNT=0;
void init() {CNT=0;num.clear();for(int i=0; i<maxn; i++)tree[i]=0;
}
int insert(int x,int k) {CNT+=k;for(int i=x; i<maxn; i+=ne)tree[i]+=k;
}
int query(int x) {int ans=0;for(int i=x; i>0; i-=ne)ans+=tree[i];return ans;
}
int q1() {int tmp;if(num.size()==0)return -1;tmp=num.back();num.pop_back();insert(tmp,-1);return tmp;
}int main() {init();ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);int t;cin>>t;for(int cas=1; cas<=t; cas++) {string s;cin>>s;if(s[1]=='o') {int bac=q1();if(bac==-1) {cout<<"Invalid"<<endl;} else {cout<<bac<<endl;}} else if(s[1]=='e') {if(CNT==0) {cout<<"Invalid"<<endl;continue;}int cal = (CNT+1)/2;int l=1,r=1e5,mid,ans=1;while(l<=r) {mid = (l+r)>>1;if(query(mid)<cal) {l=mid+1;} else {ans=mid;r=mid-1;}}cout<<ans<<endl;} else if(s[1]=='u') {int tmp;cin>>tmp;num.push_back(tmp);insert(tmp,1);}}return 0;
}

PTA 1056 Mice and Rice (25分)相关推荐

  1. 1056 Mice and Rice (25分)

    1056 Mice and Rice (25分) 参考 题目读了好久都没读明白...看了上方链接的解释才懂什么意思,感觉好绕... 第二行为0~n-1的老鼠重量,第三行为合并的次序序号,最后按0到n- ...

  2. 1056 Mice and Rice (25 分)【难度: 一般 / 知识点: 模拟】

    https://pintia.cn/problem-sets/994805342720868352/problems/994805419468242944 这里是用队列模拟. #include< ...

  3. 1056. Mice and Rice (25)

    1056. Mice and Rice (25) 时间限制 100 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN, Yue Mice an ...

  4. A1056 Mice and Rice (25 分| queue用法,附详细注释,逻辑分析)

    写在前面 思路分析 np为老鼠数量, ng为每组最多g个老鼠. 先给出np个老鼠重量,再给出老鼠初始顺序 每ng个老鼠分为1组,对于每组老鼠,选出最重的那个,晋级下1轮比赛,然后依次再以np个老鼠1组 ...

  5. 1056 Mice and Rice (25 point(s))

    Matter: 1.很难受,这个想了好长时间,发现没读懂题目.second line 是每个老鼠的质量(W​i​​ is the weight of the i-th mouse),third lin ...

  6. PAT 甲级 1056 Mice and Rice

    1056 Mice and Rice 题目大意:给出老鼠的数量和每组的人数,将老鼠分成若干组(多下来不够每组人数的算作一组),第二行给出每只老鼠最终的重量,第三行给出分组顺序 思路:记录每轮获胜的选手 ...

  7. PTA秀恩爱分得快 (25分)

    PTA秀恩爱分得快 (25分) 古人云:秀恩爱,分得快. 互联网上每天都有大量人发布大量照片,我们通过分析这些照片,可以分析人与人之间的亲密度.如果一张照片上出现了 K 个人,这些人两两间的亲密度就被 ...

  8. PTA 03-树1 树的同构 (25分)

    题目地址 https://pta.patest.cn/pta/test/15/exam/4/question/711 5-3 树的同构   (25分) 给定两棵树T1和T2.如果T1可以通过若干次左右 ...

  9. C++学习之路 | PTA乙级——1090 危险品装箱 (25 分)(精简)

    1090 危险品装箱 (25 分) 集装箱运输货物时,我们必须特别小心,不能把不相容的货物装在一只箱子里.比如氧化剂绝对不能跟易燃液体同箱,否则很容易造成爆炸. 本题给定一张不相容物品的清单,需要你检 ...

最新文章

  1. Mybatis学习记录-使用问题总结之一DISTINCT
  2. 程序员数学基础【四、取模应用-判断奇偶数、判断素数、求两个数的最大公约数、水仙花数】(Python版本)
  3. 案例4-1.6 树种统计 (25 分)_18行代码AC
  4. 《线性代数的几何意义》笔记(1)
  5. 年后开课 | 第 4 期临床基因组家系分析,同时解决科研和临床问题
  6. Python多线程编程基础1:为什么要使用线程
  7. 学点PYTHON基础的东东--数据结构,算法,设计模式---观察者模式
  8. 在线编辑器XhEditor
  9. 在windows系统下安装linux双系统
  10. 机械自动化与计算机专业,大学机械与自动化专业主要学什么
  11. zabbix-8:zabbix-api 获取hostid
  12. 微信公众号开发之(35)地图导航
  13. ai人工智能书籍_您应该阅读的有关AI的精彩书籍
  14. 形态学 - 击中-击不中变换
  15. 如何高效回复审稿意见?(附常用审稿意见回复模板)
  16. 阿里云生态峰会实录(上)
  17. 《论语》原文及其全文翻译 学而篇9
  18. 昱琛航空IPO被终止:曾拟募资5亿 郭峥为大股东
  19. MicroERP简介及下载
  20. TCP连接断开原理剖析

热门文章

  1. TPM 2.0规范系列解读——Part 1体系结构第(三)读:可信平台的基本特征
  2. numpy expand_dims函数
  3. 【题】【矩阵】NKOJ 1901 喜欢奇数的面包师
  4. 软件测试【每日一题20220913】面包师皮特
  5. 矿产行业智能采购管理系统开发,采购平台提升矿企核心竞争力
  6. 如何构建大规模数据中心网络?智邦科技高密交换机给你答案
  7. SQL Server之STUFF 使用
  8. 已知四边形四条边求四边形最大面积
  9. 直连模式,PAC模式,全局模式的区别
  10. Java基础-数组深入之经典案例实现-点名器