【NOIP模板】 堆-stl

#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>
using namespace std;

long long ans = 0;
int t, n, a[100010];

int main() {
    scanf("%d", &n);
    for(int i = 1; i <= n; i ++)
        scanf("%d", &a[i]);
    make_heap(a + 1, a + n + 1, greater<int>());
    int t, cnt = n;
    while(1) {
        t = a[1];
        pop_heap(a + 1, a + cnt + 1, greater<int>());
        t += a[1]; cnt --;
        pop_heap(a + 1, a + cnt + 1, greater<int>());
        ans += t, a[cnt] = t;
        push_heap(a + 1, a + cnt + 1, greater<int>());
        if(cnt == 1) break;
    }
    printf("%lld", ans);
    return 0;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
NOIP(全国青少年信息学奥林匹克竞赛)是中国举办的一项顶尖竞赛,旨在选拔和培养青少年信息学人才。CSP(计算机科学与编程竞赛)是NOIP的初赛,包括提高组和普及组两个不同难度的竞赛。 从1995年到2021年,CSP提高组复赛试题持续不断地推陈出新。试题的难度和内容与时俱进,反映了信息科技和计算机学科的发展趋势。 这些试题涵盖了计算机科学与编程的各个领域,如数据结构、算法设计与分析、图论、动态规划等。这些题目不仅要求考生熟悉编程语言,还需要考生具备分析问题、设计算法、优化程序的能力。因此,参加CSP的考生需要有扎实的计算机基础知识和编程技巧。 CSP试题的设计目标是培养学生的创新思维、动手能力和问题解决能力。试题往往是实际问题的抽象化,考生需要将问题拆解、建模,并设计出适用的算法和程序来解决。这种综合应用的能力培养能够提高学生的实践能力和创新能力,为他们今后的学习和工作打下坚实的基础。 此外,CSP试题还注重培养学生的团队合作精神和竞技意识。复赛试题通常要求考生在限定时间内完成,这要求考生在有限的时间内高效地协作和解决问题。 总之,NOIP CSP提高组复赛试题的不断更新和提高,以及其注重培养学生的综合能力,使得参加这项竞赛的学生能够更好地理解和应用计算机科学知识,为他们日后的学习和发展打下良好的基础。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值