包含標頭檔案
:stack 定義
:stackname; //int
型的用法:
出棧: name.pop();//
出棧入棧
: name.push(t);
//t為入棧元素
棧頂: name.top()//
返回棧首
判空: name.empty();
//若為空返回
true 長度
: name.size();//
棧的大小
包含標頭檔案
:queue 定義
:queuename;
//int
型的用法:
出隊: name.pop();
入隊: name.push(t); //t
為入棧元素
隊首: name.front() 判空
: name.empty()
//若為空返回
true 隊尾
: name.back() 長度
: name.size();
包含標頭檔案
:queue
struct node
int priority;//
優先順序
int value;//值
}; 定義:priority_queue,cmp> name;
用法:隊首元素:
name.top()
其餘操作和佇列一樣
包含標頭檔案
:algorithm
stl裡面的堆操作一般用到的只有4個:
make_heap();
、pop_heap();
、push_heap();
、sort_heap();
1
、
make_heap();
函式原型:
void make_heap(first_pointer,end_pointer,compare_function);
乙個引數是陣列或向量的頭指標,第二個向量是尾指標。第三個引數是比較函式的名字。在預設的時候,預設是大跟堆。(下面的引數都一樣就不解釋了)
作用:把這一段的陣列或向量做成乙個堆的結構。範圍是
(first,last)
2
、
pop_heap();
函式原型:
void pop_heap(first_pointer,end_pointer,compare_function);
作用:pop_heap()
不是真的把最大(最小)的元素從堆中彈出來。而是重新排序堆。它把
first
和last
交換,然後將
[first,last-1)
的資料再做成乙個堆。
3
、
push_heap();
函式原型:
void pushheap(first_pointer,end_pointer,compare_function);
作用:push_heap()
假設由[first,last-1)
是乙個有效的堆,然後,再把堆中的新元素加進來,做成乙個堆。
4
、
sort_heap()
函式原型:
void sort_heap(first_pointer,end_pointer,compare_function);
作用是sort_heap
對[first,last)
中的序列進行排序。它假設這個序列是有效堆。(當然,經過排序之後就不是乙個有效堆了)
下面是例子:
包含標頭檔案
:algorithm
用法:sort(a,a+n);//
由小到大
sort(a,a+n,cmp);//cmp
排序的比較函式
qsort( a , size , sizeof(a[0])*size , cmp);
cmp寫法
1
、
int/char
型
2
、
double
型
3
、
char *
型
4
、結構體一級排序
5
、結構體二級排序
包含標頭檔案
:algorithm
用法:stable_sort (a,a+n);//
由小到大
stable_sort (a,a+n,cmp);
//cmp
排序的比較函式
包含標頭檔案
:algorithm
用法:nth_element(c,c+z,c+j); 解釋
:從c開始到
c+j的陣列中第
k小元素,陣列c第
k個即第
k小數,
c[k-1]
即為第k
小數,且之前的都比這個數小。
kmp演算法
Trie樹 ACM程式設計競賽
時間限制 10000ms 單點時限 1000ms 記憶體限制 256mb 小hi和小ho是一對好朋友,出生在資訊化社會的他們對程式設計產生了莫大的興趣,他們約定好互相幫助,在程式設計的學習道路上一同前進。這一天,他們遇到了一本詞典,於是小hi就向小ho提出了那個經典的問題 小ho,你能不能對於每乙個...
ACM挑戰程式設計競賽1 1抽籤
試題描述 你的朋友提議玩乙個遊戲 將寫有數字的n 個紙片放入口袋中,你可以從口袋中抽取4 次紙片,每次記下紙片上的數字後都將其放回口袋中。如果這4 個數字的和是m,就是你贏,否則就是你的朋友贏。你挑戰了好幾回,結果一次也沒贏過,於是怒而撕破口袋,取出所有紙片,檢查自己是否真的有贏的可能性。請你編寫乙...
ACM挑戰程式設計競賽1 1抽籤
試題描述 你的朋友提議玩乙個遊戲 將寫有數字的n 個紙片放入口袋中,你可以從口袋中抽取4 次紙片,每次記下紙片上的數字後都將其放回口袋中。如果這4 個數字的和是m,就是你贏,否則就是你的朋友贏。你挑戰了好幾回,結果一次也沒贏過,於是怒而撕破口袋,取出所有紙片,檢查自己是否真的有贏的可能性。請你編寫乙...