找最大重复次数的数和重复次数(C++ Pair)
生活随笔
收集整理的這篇文章主要介紹了
找最大重复次数的数和重复次数(C++ Pair)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Problem A: 第一集 你好,世界冠軍
Time Limit:?10 Sec??Memory Limit:?128 MBSubmit:?265??Solved:?50
[Submit][Status][Web Board]
Description
?“我宣布,第十屆國際程序設計競賽現在開始!本次比賽時間為9點到14點……”伴隨著大賽主席的宣布,一場體現現今最高編程水平的大賽正式拉開帷幕。
距比賽現場有十幾公里遠的地方,有一個少年名叫小A的還在睡覺。這是一場讓他盼望很久的比賽,只是昨晚太興奮了。不過一切還不算太晚,這個比賽是5個小時,允許遲到的。 “幾點了現在~”睡眼朦朧間看了下手機。“啊!都11點啦!……”只見他像彈簧一樣從床上彈起來,穿下衣服拿起書包就出門去了。沒錯,你說對了,他沒有刷牙洗臉,這也是他一向的作風,不拘小節~ “本次比賽的規則是有很多道題目,每個選手有個比賽號碼,每道題目都只記錄第一個做出題目的參賽者編號,最后按照參賽者編號的記錄數排名……”組委會在說明比賽規則。 過了許久,小A急匆匆沖進大賽門口,“嘭~哎喲~”,小A撞到了一位女生。這名女生名叫小C,是校報的記者。“會不會走路啊!走路都不長眼!”小C生氣地罵道,一邊打量著這位邋里邋遢的男生心想“碼農也就這幅德性,不跟他一般見識”,一邊撿起她的單反。小A本來還是睡意朦朧,立馬清醒了過來,連忙道歉,朝小C看去,只見一頭飄逸的長發里藏著一張秀氣的臉,雖然是在生氣,但是看起來更可愛了。小A不由內心一動,不過更著急的還是比賽,剛要動身進入場地,就被小C喊住了,“站住!我的單反好像被你撞壞了!”。小A哪顧得上這個,就說“比賽完我拿獎金賠你就是~”。小C鄙視到“大言不慚,我等著看你被人虐!” 廣告時間:喜太多提醒現在是有獎問答時間,請你編程找出本屆冠軍是誰哦!劇中比賽全球大學生都參加了編號從-10^9到10^9,不要問我比賽場地能不能坐下,這是全球同步比賽,結果匯總在一起的。總共題目數可達10萬道。給你題目數N,和N個編號,每個編號是指這道題目第一個做出來的參賽者編號,求出出現次數最多的編號和次數,次數相同輸出編號最小的。具體格式見樣例。 比賽時間總是過得很快,“10、9、8、7……”隨著裁判員的倒計時,比賽結束了。接下來是緊張的公布結果時間。 “好消息!本次比賽的世界冠軍在我們賽區!”組委會宣布了一個另全場震驚的結果!大家議論紛紛,猜測這個人會是誰呢?小C那是既興奮又生氣,興奮的是可以跟世界冠軍面對面采訪,生氣的是可惡的小A把采訪設備摔壞,不能拍照留念,校報沒有照片怎么辦。 很快,頒獎典禮開始了,“現在有請我們的世界冠軍起來領獎,獎金100塊和一本《挑戰程序設計競賽》,他就是小A!”,全場沸騰,想一睹冠軍風采! 冠軍緩緩走上獎臺,小C定睛一看,“這不是那個撞我的男生嗎?原來是他,終于找到了……” “請冠軍說說獲獎感言!”主持人說到。 “本來是沒有想得到這個冠軍的,可是為了賠一個女生的單反就只好拿了冠軍,可突然發現拿了冠軍又能怎樣呢?……”,全場同情。 頒獎典禮完畢后,小A找到了小C要賠她單反,小C故作鎮定說到,“小子看不出來還挺厲害的嘛,我是校報記者叫小C,那你留個電話給我吧,到時候給我單反我順便也采訪你一下。”小A當然很樂意啦,留完電話小A就被人群包圍住了,小C只好默默離開了……Input
?輸入包括多組測試數據
每組測試數據的第一行是一個數字n表示題目數(0<n<=100000) 然后是n個整數表示第一次做出題目的參賽者編號,每個編號在[-10^9,10^9]內Output
?對于每組測試數據輸出2個數,分別表示出現最多次的數和它出現的次數。(如果有多個同樣次數的數,輸出最小的那個)
Sample Input
5 1 2 1 2 3Sample Output
1 21 /***********************************************************************************/ 2 水題,用這題目來嘗試下Pair二元組的使用二元,可以忽略不看 3 包含:#include<utility> 且 algorithm 和 map 也包含了這個頭文件 4 pair <type,type>Sum[100005];/*定義二元組的數組*/ 5 Sum.first;/*第一個元素,自己賦予含義即可*/ 6 Sum.second;/*第一個元素,自己賦予含義即可*/ 7 pair <pair<int ,int>a,int>SUM[100005];/*二元組可以嵌套使用*/ 8 SUM.pair.first;/*第一個元素,自己賦予含義即可*/ 9 SUM.pair.second;/*第一個元素,自己賦予含義即可*/ 10 /***********************************************************************************/ 11 #include <algorithm> 12 #include <iostream> 13 #include <stack> 14 #include <stdio.h> 15 #include <string.h> 16 using namespace std; 17 int MAX_NUM,Max; 18 void Judge(pair<int,int>Sum) /*判斷結果*/ 19 { 20 if(Max<=Sum.second) 21 { 22 MAX_NUM=Sum.first; 23 Max=Sum.second; 24 } 25 return ; 26 } 27 int main() 28 { 29 SUM.pair. 30 int T,sign; 31 int Num[100005]; 32 while(scanf("%d",&T)!=EOF) 33 { 34 sign=-1;Max=1; 35 pair <int,int>Sum[100005]; /*定義二元組,first記錄點的大小,second記錄點的次數*/ 36 for(int i=0;i<T;i++) 37 scanf("%d",&Num[i]); /*輸入每一個點*/ 38 sort(Num,Num+T); /*排序,升序*/ 39 for(int i=T-1;i>=0;i--) 40 { 41 if(i==T-1||(Sum[sign].first!=Num[i]))/*點不一樣,進行判斷和記錄新的一個點*/ 42 { 43 if(sign>=0) 44 Judge(Sum[sign]); /*判斷*/ 45 sign++; 46 Sum[sign].first=Num[i]; /*對下個記錄的點初始化*/ 47 Sum[sign].second=1; /*對下個記錄的點初始化*/ 48 } 49 else 50 { 51 Sum[sign].second++; /*點一樣,記錄的點數加1*/ 52 } 53 if(i==0)Judge(Sum[sign]); /*需要特判*/ 54 } 55 printf("%d %d\n",MAX_NUM,Max); /*輸出出現的次數最多的點的大小和其所出現的次數*/ 56 } 57 return 0; 58 } View Code
?
轉載于:https://www.cnblogs.com/Wurq/p/4427423.html
總結
以上是生活随笔為你收集整理的找最大重复次数的数和重复次数(C++ Pair)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: JS获取本周、本季度、本月、上月的开端日
- 下一篇: Dos中转义符