河南省第十屆ACM 省賽 A 諜報分析

2022-03-17 02:21:15 字數 1533 閱讀 4765

題目描述

「八一三」淞滬抗戰爆發後,*幾次準備去上海前線視察和指揮作戰。但都因為寧滬之間的鐵路和公路遭到了敵軍的嚴密封鎖,狂轟濫炸,一直未能成行。

特科組織,其主要任務是保衛的安全,了解和掌握敵方的動向。經過一段時間的監聽,諜報組獲取了敵方若干份密報,經過分析,發現密文中頻繁出現一些單詞,情報人員試圖從單詞出現的次數中,推出敵軍的行動計畫。

請你程式設計,快速統計出頻率高的前十個單詞。

輸入密文是由英語單詞(小寫字母)組成,有若干段。單詞之間由乙個或多個空格分開,自然段之後可以用乙個「,」或「。」表示結束。整個內容的單詞數量不超過10000,不同的單詞個數不超過500.

輸出輸出佔10行,每行乙個單詞及出現的次數,中間乙個空格。要求按頻率降序輸出,出現次數相同的單詞,按字典序輸出。

樣例輸入

shooting is at shanghai station. shooting must 

be carried out. shooting shooting. 

shanghai station must be surrounded, at least a team of one hundred soldiers to fight. twenty five soldiers shooting in the north, twenty five soldiers shooting in the south, twenty five soldiers shooting in the east, twenty five soldiers shooting in the west. 

樣例輸出

shooting 8 

soldiers 5 

five 4 

in 4 

the 4 

twenty 4 

at 2 

be 2 

must 2 

shanghai 2

我的做法是先用map記錄每個單詞出現的次數,因為map不是順序結構,沒辦法sort,所以存到vector>中。

每次讀乙個字元,直到eof

#include using

namespace

std;

char s[50

];map

m;vector

string, int> >v;

bool cmp(pairx ,pairy)

intmain()

}else}}

for(map::iterator it = m.begin(); it != m.end(); it++)

v.push_back(make_pair(it->first, it->second));

sort(v.begin(), v.end(), cmp);

int num = 1

;

for(vectorstring, int> >::iterator it = v.begin(); it != v.end() && num <= 10; it++, num++)

cout

"return0;

}

第十屆河南省acm省賽 諜報分析

八一三 淞滬抗戰爆發後,幾次準備去上海前線視察和指揮作戰。但都因為寧滬之間的鐵路和公路遭到了敵軍的嚴密封鎖,狂轟濫炸,一直未能成行。特科組織,其主要任務是保衛 的安全,了解和掌握敵方的動向。經過一段時間的監聽,諜報組獲取了敵方若干份密報,經過分析,發現密文中頻繁出現一些單詞,情報人員試圖從單詞出現的...

河南省第十屆ACM 省賽 A 諜報分析

題目描述 八一三 淞滬抗戰爆發後,幾次準備去上海前線視察和指揮作戰。但都因為寧滬之間的鐵路和公路遭到了敵軍的嚴密封鎖,狂轟濫炸,一直未能成行。特科組織,其主要任務是保衛的安全,了解和掌握敵方的動向。經過一段時間的監聽,諜報組獲取了敵方若干份密報,經過分析,發現密文中頻繁出現一些單詞,情報人員試圖從單...

第十屆ACM省賽 A 諜報分析

時間限制 1 sec 記憶體限制 128 mb 八一三 淞滬抗戰爆發後,幾次準備去上海前線視察和指揮作戰。但都因為寧滬之間的鐵路和公路遭到了敵軍的嚴密封鎖,狂轟濫炸,一直未能成行。特科組織,其主要任務是保衛 的安全,了解和掌握敵方的動向。經過一段時間的監聽,諜報組獲取了敵方若干份密報,經過分析,發現...