当前位置: 首页 > article >正文

蓝桥杯备考:数据结构堆之 除2!

这道题我们可以用优先级队列来解决,我们的算法思路如下:

先把n个数的和加起来 并把是偶数的值插入到优先级队列里面

接下来如果队列有值并且你还有操作次数,你就不断的把最大的偶数除2,并且判断除2的结果是不是偶数,如果是偶数继续插入到堆里面


 

#include <iostream>
#include <queue>
typedef long long ll;
using namespace std;
ll sum;
ll n,k;
priority_queue <int> heap;
int main()
{
    cin >> n >> k;
    ll x;
    for(int i = 1;i<=n;i++)
    {
        cin >> x;
        sum+=x;
        if(x%2 == 0) heap.push(x);
    }
    while(k--&&heap.size())
    {
       ll t = heap.top();heap.pop();
        sum-=t;
        t/=2;
        if(t%2==0) heap.push(t);
        sum+=t;
        
        
    }
    cout << sum << endl;
    
    return 0;
}


http://www.kler.cn/a/583978.html

相关文章:

  • STM32Cubemx-H7-9-串口接受不定长度数据并识别
  • 解决 VSCode SSH 连接报错:“REMOTE HOST IDENTIFICATION HAS CHANGED” 的问题
  • Nginx 多协议代理功能(Nginx Multi Protocol Proxy Function)
  • windows11 LTSC 24h2 访问NAS问题的安全高效解决
  • C语言:计算并输出三个整数的最大值 并对三个数排序
  • 图解AUTOSAR_CP_ServiceDiscovery
  • Unix 域套接字(本地套接字)
  • NLP常见任务专题介绍(4)-ConditionalGeneration和CasualLM区别
  • 关于Playwright和Selenium 的区别和选择
  • nginx部署使用【常用命令】
  • C++时间复杂度详解
  • Blackbox.Ai体验:AI编程插件如何提升开发效率
  • Docker 基础命令 - 以 Nginx 实战总结
  • 在Electron-Vue中实现macOS风格自定义标题栏
  • 数据结构与算法效率分析:时间复杂度与空间复杂度详解(C语言)
  • 【OpenCV C++】存图,如何以时间命名,“年月日-时分秒“产生唯一的文件名呢?“年月日-时分秒-毫秒“ 自动检查存储目录,若不存在自动创建存图
  • 2024年第十五届蓝桥杯软件C/C++大学A组——五子棋对弈
  • 前缀和(例题)
  • availability() missing 2 required positional arguments: ‘host‘ and ‘d‘ 怎么处理
  • ElasticSearch 入门到放弃(持续更新中)