首页 > 编程语言 >堆算法题解

堆算法题解

时间:2024-01-10 11:01:20浏览次数:27  
标签:10 数列 int 题解 样例 整数 算法 输入

输入一个长度为n的整数数列,从小到大输出前m小的数。输入格式

第一行包含整数n和m。

第二行包含n个整数,表示整数数列。

输出格式

共—行,包含m个整数,表示整数数列中前m小的数。

数据范围

1 ≤m ≤ n ≤ 10^5

1≤数列中元素≤10

输入样例:

5 3
4 5 1 3 2

输出样例:

1 2 3

代码:

#include <iostream>
 
using namespace std;
 
const int N = 100010;
 
int n, m;
int h[N],Size;
 
void down(int u)
{
    int t = u;
    if(u * 2 <= Size && h[u * 2] < h[t]) t = u * 2;
    if(u * 2 + 1 <= Size && h[u * 2 + 1] < h[t])    t = u * 2 + 1 ;
    if(u != t)
    {
        swap(h[u], h[t]); 
        down(t);
    }
}
 
int main()
{
    scanf("%d%d", &n, &m);
    for(int i = 1; i <= n; i++) scanf("%d", &h[i]);
    Size = n;
    
    for(int i = n/2; i ; i --)  down(i);
 
    while(m --)
    {
        printf("%d ", h[1]);
        h[1] = h[Size--];
        down(1);
    }
 
    return 0;
}


标签:10,数列,int,题解,样例,整数,算法,输入
From: https://blog.51cto.com/u_16492348/9175541

相关文章

  • 【学习笔记】KMP 相关算法
    KMP单模式串匹配,比较平凡所以不说了,比较有借鉴意义的每次拓展一位和\(nxt\)数组能极大减少不合法的匹配,时间复杂度\(O(|s|+|t|)\)。引出一个定义,记满足\(s[1,i]=s[|s|-i+1,|s|]\)的前缀为字符串\(s\)的\(\mathrm{border}\),所有的\(\mathrm{border}\)构成\(\mathrm{Bo......
  • ABC335E题解
    洛谷题面感觉有点毒瘤,不过还是有些trick在的。题意翻译(复制于洛谷题面):给定一个\(N\)个点\(M\)条无向边的图,图上每个点都有其颜色。求所有经过点权单调不降的路径中,出现的不同颜色的个数最多是多少。由于是单调不降的路径,所以可以点权大的点到点权小的点的路径对结果没......
  • 复旦大学2023--2024学年第一学期(23级)高等代数I期末考试第七大题解答
    七、(10分) 设$A$为$n\,(n>1)$阶非异阵,$B$是$A$的逆阵. 任取$r$个指标$1\leqi_1<i_2<\cdots<i_r\leqn$, 剩余的指标记为$1\leqi_{r+1}<\cdots<i_n\leqn$.证明:$$|A|\cdotB\begin{pmatrix} i_1&i_2&\cdots&i_r\\ i_1&i_2&......
  • 【机器学习】常见算法详解第2篇:K近邻算法各种距离度量(已分享,附代码)
    本系列文章md笔记(已分享)主要讨论机器学习算法相关知识。机器学习算法文章笔记以算法、案例为驱动的学习,伴随浅显易懂的数学知识,让大家掌握机器学习常见算法原理,应用Scikit-learn实现机器学习算法的应用,结合场景解决实际问题。包括K-近邻算法,线性回归,逻辑回归,决策树算法,集成学习,聚......
  • 文心一言 VS 讯飞星火 VS chatgpt (175)-- 算法导论13.3 4题
    四、用go语言,Teach教授担心RB-INSERT-FIXUP可能将T.nil.color设为RED,这时,当z为根时第1行的测试就不会让循环终止。通过讨论RB-INSERT-FIXUP永远不会将T.nil.color设置为RED,来说明这位教授的担心是没有必要的。文心一言:首先,我们需要明确RB-INSERT-FIXUP的功能和实现方式......
  • MCM_算法篇
    frompixivCellularAutomata参考文章:元胞自动机的实现与应用这篇文章将CA的实现给出,具体实现细节可以看:Python实现基于元胞自动机的生命游戏澳洲变燠洲,考拉成烤拉!澳大利亚山火为什么难以控制?......
  • 【教3妹学编程-算法题】移除后集合的最多元素数
    3妹:好冷啊,冻得瑟瑟发抖啦2哥 :这才哪跟哪,上海这几天温度算是高的啦。你看看哈尔滨,那才是冰城。3妹:据说沈阳千名“搓澡大姨”支援哈尔滨?哈哈哈哈2哥 :就像今年的淄博烧烤,可能有炒作的成分3妹:不不,是去年的了,今年已经24年啦。2哥,你说哈尔滨最多能住多少人,这么多人涌入哈尔滨,能住......
  • 计算器算法
    目录思路最简单的计算器(好像也不简单,因为有*/)224772困难计算器可以通解224227和上面的题先把力扣上5道计算器的题目干了,主要使用双栈法思路用一个栈ops存操作,用一个栈nums存数字然后从前往后做,对遍历到的字符做分情况讨论:空格:跳过(:直接加入ops中,等待与之匹配的......
  • IOS移动端,表单input聚焦时页面放大的问题解析以及解决办法
    在移动端开发H5项目中,发现页面在使用iPhone访问的时候,点击input和textarea等文本输入框聚焦focus()时,页面会整体放大,而且失去焦点之后页面不能返回原来的样子。原因:苹果系统觉得点击输入框放大是一个“很好”的体验,就擅自把页面给放大了,触发机制,IOS端input字体应大于15px,否......
  • 一分钟带你了解深度学习算法
    深度学习是一种受到生物学启发的机器学习方法,其目标是通过构建多层神经网络来模拟人脑的工作原理。它在过去几十年来取得了巨大的进展,并在图像识别、语音识别、自然语言处理等领域取得了突破性的成果。深度学习的核心思想是模仿人脑的神经网络。人脑中的神经元通过连接起来形成庞大......