插入,刪除,取最小
方法0:stl 優先佇列
1198ms
#include#includeview code#include
#include
using
namespace
std;
inline
intread()
while(c>='
0'&&c<='9')
return x*f;
}int
n,op;
priority_queue
, greater >q;
intmain()
}
方法1:algorithm庫 heap系列函式
520ms 這個數字.....
make_heap(begin,end,cmp) 建堆 前閉後開 cmp定義《運算,可選 注意同樣是預設大根堆
push_heap(begin,end,cmp) 插入 前閉後開 插入最後乙個元素
pop_heap(begin,end,cmp) 刪除 把堆頂元素放到最後乙個位置
#include #includeview code#include
#include
using
namespace
std;
typedef
long
long
ll;const
int n=1e6+5
;inline
intread()
while(c>='
0'&&c<='9')
return x*f;
}int
n,op,x;
int a[n],len=0
;inline
bool cmp(int a,int b)
intmain()
else
if(op==2) printf("
%d\n
",a[1
]);
else pop_heap(a+1,a+1+len,cmp),len--;}}
方法2:pb_ds庫
據說競賽可用
#include
using namespace __gnu_pbds;
支援配對堆(pairing_heap)、二叉堆(binary_heap)、二項堆(binomial_heap)、冗餘計數二項堆(redundant-counter binomial_heap,沒找到通用譯名,故自行翻譯)、經改良的斐波那契堆(thin_heap)使用方法:__gnu_pbds::priority_queue,pairing_heap_tag> q; 第三個引數換成想用的名稱就行了,預設配對堆
支援join操作,然而本文不考慮
pairing_heap_tag 428ms
binomial_heap 544ms
rc_binomial_heap 610ms
thin_heap_tag 790ms
結合wc課件中的測試,用預設的pairing就好了
#include #includeview code#include
#include
#include
using
namespace
std;
using
namespace
__gnu_pbds;
inline
intread()
while(c>='
0'&&c<='9')
return x*f;
}int
n,op,x;
__gnu_pbds::priority_queue
>q;
intmain()
}
單例模式的各種姿勢
餓漢式 基於classloder機制避免了多執行緒的同步問題,不過,instance在類裝載時就例項化 public class singleton public singleton getinstance 懶漢式 public class singleton public static synch...
檔案上傳的各種繞過姿勢
做 ctf 的 web 方向常常遇到檔案上傳的題目,而且每題多少會有些不同。於是蒐集一番總結起來學習一下。前端會檢測字尾,可以先上傳乙個符合字尾的檔案,再用 burp 抓包修改檔案的內容以及字尾即可。gif89a php eval get a jsp jspx jspf asp asa cer as...
各種動漫情侶姿勢的畫法
大家都有閱讀過少女漫畫吧?本次我們將針對男女情侶的各種場景作畫,以及構圖營造 氛圍等要點進行解說。當然,只要掌握訣竅,也能應用於繪畫同性戀的情侶。男女的體格差 畫女性時,多用的是圓潤的線條,而男性則是直線和方形線條。簡化的畫,女性下半身是更大的梯形,而男性的上半身是乙個倒三角。順便說一下,對於頭部和...