93 C STL綜合案例

2021-09-28 11:02:56 字數 1530 閱讀 6547

比賽規則:

某市舉行一場演講比賽( speech_contest ),共有24個人參加。比賽共三輪,前兩輪為淘汰賽,第三輪為決賽。

比賽方式:分組比賽,每組6個人;選手每次要隨機分組,進行比賽;

第一輪分為4個小組,每組6個人。比如編號為: 100-123. 整體進行抽籤(draw)後順序演講。當小組演講完後,淘汰組內排名最後的三個選手,然後繼續下乙個小組的比賽。

第二輪分為2個小組,每組6人。比賽完畢,淘汰組內排名最後的三個選手,然後繼續下乙個小組的比賽。

第三輪只剩下1組6個人,本輪為決賽,選出前三名。

比賽評分:10個評委打分,去除最低、最高分,求平均分每個選手演講完由10個評委分別打分。該選手的最終得分是去掉乙個最高分和乙個最低分,求得剩下的8個成績的平均分。選手的名次按得分降序排列。

用stl程式設計,求解這個問題:

1) 請列印出所有選手的名字與參賽號,並以參賽號的公升序排列。

2) 列印每一輪比賽後,小組比賽成績和小組晉級名單

需求分析:

產生選手 ( abcdefghijklmnopqrstuvwx ) 姓名、得分;選手編號

第1輪 選手抽籤 選手比賽 檢視比賽結果

第2輪 選手抽籤 選手比賽 檢視比賽結果

第3輪 選手抽籤 選手比賽 檢視比賽結果

實現思路:

需要把選手資訊、選手得分資訊、選手比賽抽籤資訊、選手的晉級資訊儲存在容器中,需要涉及到各個容器的選型。

選手可以設計乙個類speaker(姓名和得分)

所有選手的編號可以單獨放在乙個vector容器中,做抽籤用

所有選手編號和選手資訊,可以放在容器內:map

所有選手的編號名單,可以放在容器:vecter v1中

第1輪晉級編號名單,可以放在容器vecter v2中

第2輪晉級編號名單,可以放在容器vecter v3中

第3輪前三名名單,可以放在容器vecter v4中

每個小組的比賽得分資訊,按照從大到小的順序放在multimap《成績, 編號, greater>

每個選手的得分,可以放在容器deque dscore; 方便去除

最低最高分。

2 綜合案例

1.逆序對及應用 2.學會應用排序演算法 3.理解單調佇列及應用 4.理解二分法 1.逆序對 設 a 為乙個有 n 個數字的有序集 n 1 其中所有數字各不相同。如果存在正整數 i,j 使得 1 i j n 而且 a i a j 則 這個有序對稱為 a 的乙個逆序對,也稱作逆序數。使用歸併排序演算法...

ansible roles綜合案例

ansible自1.2版本引入的新特性,用於層次性,結構化地組織playbook。roles能夠根據層次結構自動裝載變數檔案 tasks以及handlers等。要使用roles只需要在playbook中使用include指令即可。簡單來講,roles就是通過分別將變數 檔案 任務 模板及處理器放置於...

JQuery綜合案例(六)

需求 當頁面載入完成,3秒後,自動顯示廣告 廣告顯示5秒後,自動消失 分析 使用定時器,settimeout 執行一次定時器 jquery的顯示和隱藏動畫就是控制display 使用show,hide完成廣告顯示和隱藏 實現 function function adshow function adh...