首页 > 其他分享 >P1090 [NOIP2004 提高组] 合并果子

P1090 [NOIP2004 提高组] 合并果子

时间:2023-11-26 17:13:27浏览次数:28  
标签:NOIP2004 果子 int sum len pile P1090 now out

原题链接

题解

每次从所有果子堆中选重量最小的两堆并累加,观察到只需要找出 最小 因此考虑用堆

代码

#include<bits/stdc++.h>
using namespace std;

int pile[10005]={0};
int len=0;


void in(int x)
{
    pile[++len]=x;

    int now=len;
    while(pile[now]<pile[now/2]&&now>1)
    {
        swap(pile[now],pile[now/2]);
        now/=2;
    }
}

int out()
{
    swap(pile[len--],pile[1]);

    int son=2;
    while(son<=len)
    {
        if(son+1<=len&&pile[son+1]<pile[son])
        {
            son+=1;
        }
        if(pile[son]<pile[son/2]) swap(pile[son],pile[son/2]);
        else break;
        son*=2;
    }
    return pile[len+1];
}

int main()
{
    int n;
    scanf("%d",&n);
    for(int i=1;i<=n;i++)
    {
        int x;
        scanf("%d",&x);
        in(x);
    }

    int ans=0;
    while(len>1)
    {
        int sum=out()+out();
        ans+=sum;
        in(sum);
    }

    printf("%d",ans);
    return 0;
}

标签:NOIP2004,果子,int,sum,len,pile,P1090,now,out
From: https://www.cnblogs.com/pure4knowledge/p/17857549.html

相关文章

  • 洛谷p1090__合并果子
    合并果子可以作为mulitset的板子题 mulitset的accode#include<iostream>#include<set>usingnamespacestd;multiset<int,less<int>>m;intmain(){intn;cin>>n;for(inti=0;i<n;i++){intt;cin>......
  • 【洛谷 P1089】[NOIP2004 提高组] 津津的储蓄计划 题解(循环)
    [NOIP2004提高组]津津的储蓄计划题目描述津津的零花钱一直都是自己管理。每个月的月初妈妈给津津元钱,津津会预算这个月的花销,并且总能做到实际花销和预算的相同。为了让津津学习如何储蓄,妈妈提出,津津可以随时把整百的钱存在她那里,到了年末她会加上还给津津。因此津津制定了一......
  • 趣解装饰者模式之《我想吃煎饼果子了》
    〇、小故事话说最近早起没时间做早饭,并且早上上班的地铁口不远处就有一处非常火爆的煎饼摊,所以我就经常去那边吃煎饼,一个“基础版”煎饼是7块钱,向煎饼中加一颗鸡蛋是1元钱,加一根火腿肠是3元钱,加鸡柳是4元钱……好像基本上能想到的美食都能往煎饼里塞似的。这就让我想起之前看过的一......
  • 【洛谷 P1085】[NOIP2004 普及组] 不高兴的津津 题解(打擂台法)
    [NOIP2004普及组]不高兴的津津题目描述津津上初中了。妈妈认为津津应该更加用功学习,所以津津除了上学之外,还要参加妈妈为她报名的各科复习班。另外每周妈妈还会送她去学习朗诵、舞蹈和钢琴。但是津津如果一天上课超过八个小时就会不高兴,而且上得越久就会越不高兴。假设津津不会因......
  • 4793: 虫食算 noip2004提高组T4 深搜/剪枝
    #include<bits/stdc++.h>usingnamespacestd;typedeflonglongll;constintN=1e3+10,inf=0x3f3f3f3f;charA[N],B[N],C[N];charwords[N];intcnt;charkeys[N];boolvis[N];intn;voidprint(){for(inti=0;i<n-1;i++)pri......
  • 合并果子题解-C++ STL priority_queue容器的使用
    说明:本博文关于priority_queue容器的说明来源于www.cnblogs.com/fusiwei/p/11823053.html本人是刚刚接触算法竞赛的萌新,如果有大佬发现了错误,还望指出(真的有人会看本蒟蒻的博文吗)这是我的第一篇博文,更多是作为测试以后会将博客作为笔记记录学习的体会基本概念priority_queu......
  • 【题解】#68. 「NOIP2004」津津的储蓄计划 题解(2023-07-19更新)
    #68.「NOIP2004」津津的储蓄计划题解本文章的访问次数为次。Part1提示题目传送门欢迎大家指出错误并私信这个蒟蒻欢迎大家在下方评论区写出自己的疑问(记得@这个蒟蒻)Part2背景这是这个蒟蒻的第一篇题解,也是这个蒟蒻对自己的\(50\)AC的纪念。Part3更新日志......
  • #551. 合并果子(二叉堆)
    #551.合并果子_#551.合并果子方法一:手写堆(题解->陶)#include<bits/stdc++.h>usingnamespacestd;constintmaxn=10000+10;intn,heap[maxn],size=0;voidup(intp)//二叉小根堆向上调整(子节点小于父节点就调整){while(p>1){if(heap[p]<heap[p/2]){......
  • 【题解】#68. 「NOIP2004」津津的储蓄计划 题解(2023-07-01更新)
    #68.「NOIP2004」津津的储蓄计划题解题目传送门欢迎大家指出错误并联系这个蒟蒻更新日志2023-02-0117:20文章完成2023-02-0316:09文章审核通过2023-02-0422:15修改了注释2023-05-2709:27修改了$\LaTeX$2023-07-0115:45修改了代码题目知识点模拟题目分析......
  • P1085 [NOIP2004 普及组] 不高兴的津津
    [NOIP2004普及组]不高兴的津津题目描述津津上初中了。妈妈认为津津应该更加用功学习,所以津津除了上学之外,还要参加妈妈为她报名的各科复习班。另外每周妈妈还会送她去学习朗诵、舞蹈和钢琴。但是津津如果一天上课超过八个小时就会不高兴,而且上得越久就会越不高兴。假设津津不......