POJ 1442 Black Box(大小堆,求第K小的元素)

文章目录

    • 1. 题目链接
    • 2. 题目解读
    • 3. 代码
      • 3.1 Runtime Error 代码

1. 题目链接

http://poj.org/problem?id=1442

2. 题目解读

在这里插入图片描述
可以利用大小堆,大堆长度从1开始,每次+1
大堆元素都比小堆的小,那么大堆顶的元素就是第k小的元素

3. 代码

3.1 Runtime Error 代码

本地运行示例,结果一致,poj提交RE,还没解决
在这里插入图片描述

/*** @description: 用大小堆求解* @author: michael ming* @date: 2019/5/31 23:21* @modified by: */
#include <iostream>
#include <algorithm>
#include <vector>
#include <functional>
using namespace std;
int arr[30005], total[30005];
int main()
{int arrlen, k, arrindex=1, maxheapsize=0, insertnum , minheapsize;cin >> arrlen >> k;for(int i = 1; i <= arrlen; ++i)cin >> arr[i];for(int i = 1; i <= k; ++i)cin >> total[i];vector<int> maxheap, minheap;for(int i = 1; i <= k; ++i){maxheapsize++;minheapsize = total[i] - maxheapsize;insertnum = total[i] - total[i-1];if(insertnum == 0 && !minheap.empty()){maxheap.push_back(minheap[0]);push_heap(maxheap.begin(), maxheap.end());//默认采用 < , 大堆pop_heap(minheap.begin(), minheap.end(), greater<int>());minheap.pop_back();}while(insertnum--){if (maxheap.empty()){maxheap.push_back(arr[arrindex]);}else{//----选择插入哪个堆-----if (arr[arrindex] <= maxheap[0]){if(maxheap.size() >= maxheapsize){minheap.push_back(maxheap[0]);//大堆顶进入小堆push_heap(minheap.begin(), minheap.end(), greater<int>());pop_heap(maxheap.begin(), maxheap.end());//堆顶到末尾了maxheap.pop_back();//删除到末尾的"堆顶"}maxheap.push_back(arr[arrindex]);push_heap(maxheap.begin(), maxheap.end());//默认采用 < , 大堆}else if (arr[arrindex] > maxheap[0]){if(minheap.size() >= minheapsize){maxheap.push_back(minheap[0]);push_heap(maxheap.begin(), maxheap.end());//默认采用 < , 大堆pop_heap(minheap.begin(), minheap.end(), greater<int>());minheap.pop_back();}minheap.push_back(arr[arrindex]);push_heap(minheap.begin(), minheap.end(), greater<int>());//小堆,采用 >}}arrindex++;}cout << maxheap[0] << endl;}return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/480257.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

阿里java架构师面试128题含答案:分布式架构+Dubbo+多线程+Redis

一、Java基础和高级 1.String类为什么是final的。 2.HashMap的源码&#xff0c;实现原理&#xff0c;底层结构。 3.反射中&#xff0c;Class.forName和classloader的区别 4.session和cookie的区别和联系&#xff0c;session的生命周期&#xff0c;多个服务部署时session管理…

LightGBM——提升机器算法(图解+理论+安装方法+python代码)

原文地址&#xff1a;https://blog.csdn.net/huacha__/article/details/81057150 前言 LightGBM是个快速的&#xff0c;分布式的&#xff0c;高性能的基于决策树算法的梯度提升框架。可用于排序&#xff0c;分类&#xff0c;回归以及很多其他的机器学习任务中。 在竞赛题中&am…

这个NLP工具,玩得根本停不下来

今天推荐一个有趣的自然语言处理公众号AINLP&#xff0c;关注后玩得根本停不下来&#xff01;AINLP的维护者是我爱自然语言处理&#xff08;52nlp&#xff09;博主&#xff0c;他之前在腾讯从事NLP相关的研发工作&#xff0c;目前在一家创业公司带技术团队。AINLP公众号的定位是…

论文浅尝 | 基于Universal Schema与Memory Network的知识+文本问答

来源&#xff1a;ACL 2017链接&#xff1a;http://aclweb.org/anthology/P17-2057本文提出将 Universal schema 用于自然语言问答中&#xff0c;通过引入记忆网络&#xff0c;将知识库与文本中大量的事实信息结合起来&#xff0c;构建出一个由问答对&#xff08;question-answe…

数据结构--图 Graph

文章目录1. 概念2. 存储方法2.1 邻接矩阵 Adjacency Matrix2.2 邻接表 Adjacency List3. 图的遍历3.1 广度优先搜索BFS&#xff08;Breadth First Search&#xff09;3.2 BFS代码&#xff08;基于邻接表&#xff09;3.3 深度优先搜索DFS&#xff08;Depth First Search&#xf…

2019最新拼多多Java面试题:幻影读+分段锁+死锁+Spring Cloud+秒杀

拼多多Java一面 简短自我介绍 事务的ACID&#xff0c;其中把事务的隔离性详细解释一遍 脏读、幻影读、不可重复读 红黑树、二叉树的算法 平常用到哪些集合类&#xff1f;ArrayList和LinkedList区别&#xff1f;HashMap内部数据结构&#xff1f;ConcurrentHashMap分段锁&…

视频问答兴起,多跳问答热度衰退,92篇论文看智能问答的发展趋势

星标/置顶小屋&#xff0c;带你解锁最萌最前沿的NLP、搜索与推荐技术文 | 舒意恒&#xff08;南京大学硕士生&#xff0c;知识图谱方向&#xff09;编 | 北大小才女小轶2019年的时候&#xff0c;舒意恒Y.Shu整理了一份《2019年&#xff0c;智能问答有哪些研究方向&#xff1f;…

论文浅尝 | 知识图谱相关实体搜索

本文转载自公众号&#xff1a;南大Websoft。相关搜索&#xff08;Relevance Search&#xff09;是信息检索中的一个经典问题&#xff0c;相关搜索是指给定一个查询实体&#xff0c;返回与其相关度最高的实体&#xff08;一个类似的问题Similarity Search&#xff0c;一般来说指…

最新美团Java面试题目(共3面)

一面 线程池用过哪些&#xff0c;线程池有哪些参数&#xff0c;然后问我几个常用线程池的用法和实际场景问题。 集合框架的知识&#xff0c;hashmap&#xff0c;ArrayList&#xff0c;LinkedList源码相关知识&#xff0c;基本整个介绍了一遍&#xff0c;与hastable&#xff0c…

PersonGraphDataSet近十万的开放人物关系图谱项目

PersonGraphDataSet PersonGraphDataSet, nearly 10 thousand person2person relationship facts that build from extraction method, which can be applied to person kg search and inference applications。 人物图谱数据集&#xff0c;近十万的人物关系图谱事实数据库&am…

图Graph--寻找二度好友(BFS应用)

社交网络可以用图来表示&#xff08;查阅图的概念&#xff09;。 寻找二度好友&#xff0c;这个问题就非常适合用图的广度优先搜索BFS算法来解决&#xff0c;因为广度优先搜索是层层往外推进的。 首先&#xff0c;遍历与起始顶点最近的一层顶点&#xff0c;也就是用户的一度好…

技术动态 | TechKG:一个面向中文学术领域的大型知识图谱

作者&#xff1a;东北大学-知识图谱研究组 任飞亮TechKG 是一个面向中文、面向学术、多领域的大型知识图谱知识库&#xff0c;知识库由“东北大学-知识图谱研究组”开发完成。和已有知识图谱如 Freebase 或 YAGO 相比&#xff0c;TechKG 具有如下主要特点&#xff1a;1、是一个…

技术总结:图算法、开源工具及其在工业界的应用场景概述

知识图谱本质上是一种图结构&#xff0c;在图内部数据规模大且质量高、外部算力足够的情况下&#xff0c;充分利用好图算法&#xff0c;能够最大程度地发挥出其数据价值。实际上&#xff0c;图&#xff08;Graph&#xff09;是一个常见的数据结构&#xff0c;现实世界中有很多很…

SIGIR2020 | 淘宝提出结合知识图谱与大规模推荐的新框架ATBRG

星标/置顶小屋&#xff0c;带你解锁最萌最前沿的NLP、搜索与推荐技术文 | 江城编 | 夕小瑶今天分享一篇淘宝发表在 SIGIR2020 上的关于知识图谱应用于大规模推荐的论文《ATBRG: Adaptive Target-Behavior Relational Graph Network for Effective Recommendation》&#xff0c…

图Graph--农夫过河问题(BFS/DFS应用)

农夫过河问题&#xff1a; /*** description: 农夫过河问题&#xff08;羊&#xff0c;白菜&#xff0c;狼&#xff09;&#xff0c;一次最多带一个东西过河&#xff0c;* 农夫不在的情况下羊会吃白菜&#xff0c;狼会吃羊&#xff0c;如何平安过河* author…

机器学习之「二分类算法」-----银行营销案例分析

原文地址&#xff1a; <di&#xff1a;https://blog.csdn.net/weixin_44696674/article/details/88231922iv id“article_content” class“article_content clearfix” data-track-view"{“mod”:“popu_307”,“con”:",https://blog.csdn.net/weixin_44696674/…

论文浅尝 | 直译优于翻译?混合语言的知识库问答方法研究

动机作者思考&#xff0c;如果一个人懂多个语言&#xff0c;那么只要他知道某一语言的某个事实&#xff0c;就能以它作为另一语言问题的答案&#xff0c;同时希望证明计算机是否也能做到这一点&#xff0c;并完成混合语言的简单问题知识问答任务&#xff08;Code-Mix Simple Qu…

2018最新Java面试78题:数据结构+网络+NoSQL+分布式架构

算法和数据结构 数组、链表、二叉树、队列、栈的各种操作&#xff08;性能&#xff0c;场景&#xff09; 二分查找和各种变种的二分查找 各类排序算法以及复杂度分析&#xff08;快排、归并、堆&#xff09; 各类算法题&#xff08;手写&#xff09; 理解并可以分析时间和空…

工程实践:基于规则模式的军事和医药领域知识图谱问答快速实现

知识结构化问答是知识图谱的一个重要的应用方向&#xff0c;虽然现在许多真实的使用体验上&#xff0c;会被评价为“鸡肋且智障”&#xff0c;并且在落地上还没有太多的付费场景&#xff0c;但也不乏有不少学生、公司、机构在尝试花时间去做这个事情。当前&#xff0c;医疗知识…

图Graph--最小生成树

文章目录1.概念2.构造最小生成树Prim算法3.构造最小生成树Kruskal算法1.概念 对图运用不同的遍历方法就可能得到图的不同遍历顺序&#xff0c;每一种遍历顺序对应于一棵生成树对于无向连通图&#xff0c;所有的生成树中必有一棵树的所有边的权的总和最小的&#xff0c;称之为最…