蓝桥杯-整数删除

整数删除

思路:数组模拟链表+优先队列

注意:求和需要开 longlong 不然会超时

cpp 复制代码
#include<bits/stdc++.h>
using namespace std;
using ll = long long;
using PII = pair<ll,ll>;
const int N = 5e5+10;
//双向数组维护节点的顺序
ll e[N];
int l[N],r[N];
int n,k,i;
//优先队列确定元素最小值和位置
void deletex(int i){
    e[l[i]]+=e[i];
    e[r[i]]+=e[i];
    r[l[i]]=r[i];
    l[r[i]]=l[i];
}
void solve( ){
    cin>>n>>k;
    priority_queue<PII,vector<PII>,greater<PII>> pq;
    r[0]=1;
    l[n+1]=n;
    for(int i=1;i<=n;i++){
        ll res;cin>>res;
        pq.push({res,i});
        e[i] = res;
        l[i]=i-1;
        r[i]=i+1;
    }
    while(k--){
        auto [res,i]= pq.top();
        pq.pop();
        if(e[i]!=res){
            pq.push({e[i],i});
            k++;
            continue;
        }
        deletex(i);
    }
    for(int i=r[0];i<=n;i=r[i]){
        cout<<e[i]<<" ";
    }
}


int main( ){
    cin.tie(nullptr)->sync_with_stdio(false);
    int T=1;
    while(T--){
        solve();
    }
    return 0;
}

没取消输入输出同步:

取消输入输出同步:

相关推荐
金幄科技1 小时前
RAG第四篇:重排序 Rerank——粗召回之后,为什么还需要一次精排
人工智能·算法·ai·ai编程
M78佐菲1 小时前
Linux学习笔记:文件IO
linux·笔记·学习·算法
lhldsg2 小时前
课程排课系统实战指南:从数据库设计到算法调优全流程解析
java·数据库·算法·小程序
BSD_HY2 小时前
薄膜开关矩阵扫描电路设计中的防鬼键措施
人工智能·算法·矩阵·人机交互·薄膜开关·源头工厂·深圳工厂
linux-hzh2 小时前
百日算法修炼 · Day 17
数据结构·算法
XUEYUAN52122 小时前
代理日志分析与监控:代理池健康状态巡检与分级告警体系搭建(运维实战)
运维·网络·网络协议·tcp/ip·算法·架构
sel_92 小时前
【多轮对话论文导读(七)】多轮对话论文阅读笔记:从数据生成、用户模拟到上下文重构与长期记忆
论文阅读·人工智能·笔记·深度学习·算法·语言模型·自然语言处理
远游客07132 小时前
为什么用「年×100+月」做比较
算法·gin
leavesleo3 小时前
DeepSeek 偷偷给你取外号?拆一下 AI 人格化背后的技术
算法
liliangcsdn3 小时前
skewness收益偏度取负因子背后逻辑的探索
人工智能·算法·机器学习