- 算法訓練營:海量圖解+競賽刷題(進階篇)
- 陳小玉
- 398字
- 2024-01-22 18:54:28
訓練3 表演評分
題目描述(POJ2833):在演講比賽中,評委對參賽者的表演進行評分。評分方法:給定n個正整數評分,刪除最大的n1個和最小的n2個評分,將其余評分的平均值作為參賽者的最終成績。請給出參賽者的最終成績。
輸入:輸入包含幾個測試用例,每個測試用例都包含兩行:第1行包含3個整數n1、n2和n(1≤n1, n2≤10,n1+n2<n≤5×106);第2行包含n個正整數ai(1≤ai≤108,1≤i≤n)。在最后一個測試用例后跟3個0。
輸出:對每個測試用例,都單行輸出參賽者的最終成績,保留小數點后6位。
提示:此問題的輸入數據非常大。對C++I/O,建議使用scanf和printf。內存限制可能不允許將所有內容都存儲在內存中。
題解:本題數據量很大,不要存儲所有數據,只需用兩個隊列分別存儲最大的n1個數和最小的n2個數即可。
1. 算法設計
定義兩個優先隊列,q1最大值優先,存儲最小的n2個數;q2最小值優先,存儲最大的n1個數。用總和減去這兩個優先隊列的元素值,然后求平均數。
2. 算法實現
推薦閱讀
- GitHub Essentials
- Voice Application Development for Android
- 企業大數據系統構建實戰:技術、架構、實施與應用
- 數據驅動設計:A/B測試提升用戶體驗
- Hadoop 3.x大數據開發實戰
- Microsoft Power BI數據可視化與數據分析
- Oracle 12c云數據庫備份與恢復技術
- Oracle RAC日記
- Unity 2018 By Example(Second Edition)
- Access 2010數據庫程序設計實踐教程
- 中國云存儲發展報告
- 大數據分析:R基礎及應用
- Swift Functional Programming(Second Edition)
- Hands-On Java Deep Learning for Computer Vision
- Hive性能調優實戰