nyoj 眾數問題 STL map,pair

2021-08-15 08:22:53 字數 875 閱讀 8312

常規方法:遍歷查詢+小小優化(排序)

常規方法ac**:

#include#includeusing namespace std;

bool cmp(int a,int b)

}else

}} printf("%d %d\n",most_last,total_last);

} return 0;

}

stl之map,pair

因為正在學習stl,所以參考了多篇博文,若干原始碼

oj上給出的原始碼使用了pair容器,關於pair容器,可查閱:

關於map容器,可查閱:

個人理解:map相當於是pair的陣列形式?

原始碼中還使用了max_element,其含義及**為

min_element()和max_element

標頭檔案:#include

作用:返回容器中最小值/最大值。max_element(first,end,cmp);其中cmp為可選擇引數!與sort排序中cmp意義相仿

以下是標程:

#include#include#include#includeusing namespace std;

bool myless(pairp1,pairp2)

map::iterator it=max_element(mp.begin(),mp.end(),myless);

cout++mp[a];

我的理解是map容器mp中鍵為a的值自增

如不容易理解,可參閱另一位作者的簡化版map:

#include#includeusing namespace std;

int main()

} cout<

NYOJ 95 眾數問題

時間限制 3000 ms 記憶體限制 65535 kb難度 3 描述 所謂眾數,就是對於給定的含有n個元素的多重集合,每個元素在s中出現次數最多的成為該元素的重數,多重集合s重的重數最大的元素成為眾數。例如 s 則多重集s的眾數是2,其重數為3。現在你的任務是 對於給定的由m個自然數組成的多重集s,...

NYOJ 95 眾數問題

時間限制 3000 ms 記憶體限制 65535 kb 難度 3 描述 所謂眾數,就是對於給定的含有n個元素的多重集合,每個元素在s中出現次數最多的成為該元素的重數,多重集合s重的重數最大的元素成為眾數。例如 s 則多重集s的眾數是2,其重數為3。現在你的任務是 對於給定的由m個自然數組成的多重集s...

NYOJ 題目95 眾數問題

時間限制 3000 ms 記憶體限制 65535 kb 難度 3 描述 所謂眾數,就是對於給定的含有n個元素的多重集合,每個元素在s中出現次數最多的成為該元素的重數,多重集合s重的重數最大的元素成為眾數。例如 s 則多重集s的眾數是2,其重數為3。現在你的任務是 對於給定的由m個自然數組成的多重集s...