zoukankan      html  css  js  c++  java
  • 手写堆

    自己写的堆,在luogu评测机上完爆stl(400+ms)

    有兴趣的可以粘走。

    #ifndef __HEAP__
    #define __HEAP__
    #ifdef __cplusplus
    
    
    
    #include<iostream>
    #include<cstdio>
    #include<cctype>
    using namespace std;
    struct SHEAP{
        int *heap;
        int num;
        SHEAP(int size){num=0;heap=new int[size];}
        inline void push(int x){
            heap[++num]=x;
            register int i=num,k;
            while(i>1){
                k=i>>1;
                if(heap[k]<=heap[i])    return;
                swap(heap[k],heap[i]);
                i=k;
            }
        }
        
        inline int pop(){
            int ans=heap[1];
            heap[1]=heap[num--];
            register int i=1,k;
            while((i<<1)<=num){
                k=i<<1;
                if(k<num&&heap[k]>heap[k|1])    k|=1;
                if(heap[i]<=heap[k])    return ans;
                swap(heap[i],heap[k]);
                i=k;
            }
            return ans;
        }
    };
    
    
    struct BHEAP{
        int *heap;
        int num;
        BHEAP(int size){num=0;heap=new int[size];}
        inline void push(int x){
            heap[++num]=x;
            register int i=num,k;
            while(i>1){
                k=i>>1;
                if(heap[k]>=heap[i])    return;
                swap(heap[k],heap[i]);
                i=k;
            }
        }
        
        inline int pop(){
            int ans=heap[1];
            heap[1]=heap[num--];
            register int i=1,k;
            while((i<<1)<=num){
                k=i<<1;
                if(k<num&&heap[k]<heap[k|1])    k|=1;
                if(heap[i]>=heap[k])    return ans;
                swap(heap[i],heap[k]);
                i=k;
            }
            return ans;
        }
    };
    
    
    
    #endif
    #endif
  • 相关阅读:
    params
    robotframework+jenkins分布式执行自动化测试用例
    python文件读写
    Robot Framework资料
    RobotFramework环境搭建
    Django评论系统
    Django集成TinyMCE(admin后台+前台)
    个人博客模块分析
    Django实战,小网站实现增删改查
    docker入门【1】
  • 原文地址:https://www.cnblogs.com/cellular-automaton/p/6885943.html
Copyright © 2011-2022 走看看