機(jī)試小課堂丨STL周·例題講解③《眼紅的荔枝》

【聲明:本文為原創(chuàng)文章,未經(jīng)同意,嚴(yán)禁轉(zhuǎn)載和抄襲,違者將追究其法律責(zé)任】
蘇世機(jī)試小課堂,考研機(jī)試不再慌!
公主號:蘇世學(xué)社考研? 蘇世計算機(jī)考研
眼紅的荔枝
Time Limit:1000ms???
Memory Limit:65535K
Description
雖然荔枝到了北京,領(lǐng)了科技創(chuàng)新獎,但是他還是覺得不滿意。原因是,他發(fā)現(xiàn)很多人都和他一樣獲了科技創(chuàng)新獎,特別是其中的某些人,還獲得了另一個獎項——特殊貢獻(xiàn)獎。而越多的人獲得了兩個獎項,荔枝就會越眼紅。于是他決定統(tǒng)計有哪些人獲得了兩個獎項,來知道自己有多眼紅。
Input
輸入第一行,有兩個數(shù)n,m,表示有n個人獲得科技創(chuàng)新獎,m個人獲得特殊貢獻(xiàn)獎。
第二行,n個正整數(shù),表示獲得科技創(chuàng)新獎的人的編號。
第三行,m個正整數(shù),表示獲得特殊貢獻(xiàn)獎的人的編號。
Output
輸出一行,為獲得兩個獎項的人的編號,按在科技創(chuàng)新獎獲獎名單中的先后次序輸出。
注意:本題答案輸出一行,最后不需要換行,否則會Presentation Error
Sample Input
4 3
2 15 6 8
8 9 2
Sample Output
2 8
Hint
對于60%的數(shù)據(jù),n<=1000,m<=1000。
對于100%的數(shù)據(jù),n<=100000,m<=100000,獲得獎項的人的編號在2e9以內(nèi)。
輸入數(shù)據(jù)保證第二行任意兩個數(shù)不同,第三行任意兩個數(shù)不同。
答案
①讀題:
將這個應(yīng)用題還原成它的本質(zhì),就是依次輸出第一行和第二行重復(fù)的數(shù)字。
②想出思路:
考慮到n,m可能會到100000,簡單暴力二層循環(huán)會超時,所以用map,用map存儲第二行的數(shù)字,然后遍歷第一行所有數(shù),如果已經(jīng)被map存儲了,就直接輸出。
③動手編程:


④測試樣例:
拿題目中的樣例輸入進(jìn)行測試:

⑤提交代碼:
進(jìn)入下面的鏈接提交代碼:
http://acm.nefu.edu.cn/problemShow.php?problem_id=1686

⑥返回評測結(jié)果:

至此,這道題我們就已經(jīng)完成了。
本題總結(jié)
本題用到了map<int,int>,主要是考慮到雙層循環(huán)來找相同的數(shù)字會超時,用map可以理解為先將第二行的數(shù)放到里面,然后遍歷第一行看看這個數(shù)有沒有已經(jīng)放進(jìn)去了,放進(jìn)去了就直接輸出。
未完待續(xù)
蘇世學(xué)社旗下品牌,專注于計算機(jī)考研
計算機(jī)考研一手資訊,原創(chuàng)高質(zhì)量干貨
深度的學(xué)習(xí)分享丨咨詢前輩丨個性化指導(dǎo)
