C++实现选举学生会主席:投票统计与并行处理技巧
## 🗳️ C++ 实现学生会主席选举(P3755) ### 📜 问题描述 这是一个典型的计数与统计问题:给定若干学生的投票,每个学生投给一个候选人编号,要求统计每个候选人的得票数,并输出得票最高者(若并列,则输出编号较小者)。 ### 🧮 核心思路 用数组或哈希表记录票数,遍历所有票数,找出最大值并处理并列情况。 ### 💻 C++ 代码实现 ```cpp #include <iostream> #include <vector> #include <algorithm> using namespace std; int main() { int n; // 投票总数 cin >> n; // 假设候选人编号范围 1~100000(根据题目调整) const int MAX_CANDIDATE = 100000; vector<int> votes(MAX_CANDIDATE + 1, 0); int candidate; for (int i = 0; i < n; i++) { cin >> candidate; votes[candidate]++; } int maxVotes = 0; int winner = 1; for (int i = 1; i <= MAX_CANDIDATE; i++) { if (votes[i] > maxVotes) { maxVotes = votes[i]; winner = i; } // 若 votes[i] == maxVotes,则保持 winner 不变(因为 i 递增,保留较小者) } cout << winner << " " << maxVotes << endl; return 0; } ``` ### ⚠️ 开发注意要点 - 候选人编号可能较大,使用 `vector` 动态分配内存,避免固定数组溢出。 - 若候选人编号范围未知或极大,改用 `unordered_map` 存储票数。 - 处理并列时,遍历顺序从小到大,仅当 `>` 时更新,可自动保留最小编号。 - 注意输入数据可能包含无效编号,需根据题意过滤(例如编号范围外者忽略)。 ### 📊 示例运行 输入: ``` 5 3 1 3 2 3 ``` 输出: ``` 3 3 ``` 解释:候选人3得票3次,最高。 ######[AI问答 | 499点数解答 | 2026-08-15 23:47:43]
- Python 实现球类:精准计算半径、表面积与体积,附输入验证与异常处理!(阿里通义 | 261点数解答 | 2024-11-28 21:19:39)561
- CentOS下Java进程出现futex_wait_queue_me问题的处理全流程(阿里通义 | 283点数解答 | 2023-11-20 14:51:26)570
- 替雷利珠单抗致免疫相关性糖尿病:病例报道与机制探讨,为临床用药敲响警钟( | 164点数解答 | 2024-10-11 14:52:52)360
- Python 代码转 C++:计算花朵鲜艳值总和(字节豆包 | 408点数解答 | 2026-04-19 21:50:57)88
- C++前缀和优化区间求和算法详解(DeepSeek | 490点数解答 | 2026-06-20 22:11:10)65
- 51 单片机:定时器 0 实现 8 个 LED 循环点亮,附代码及优化建议(字节豆包 | 1193点数解答 | 2024-12-27 15:10:29)477
- 用 Pandas 深度剖析数据:从读取到统计分析全流程实战(GPT | 642点数解答 | 2024-06-30 15:39:49)455
- 用 Pandas 深入分析招聘数据:从数据读取到可视化全流程解析(GPT | 1539点数解答 | 2024-06-30 15:56:50)484
- Python 实现:精确统计两数范围内素数个数,附完整代码与优化思路(阿里通义 | 292点数解答 | 2024-11-28 21:36:29)307
- Python 文件数量统计:检测当前及指定路径文件数并处理错误 (字节豆包 | 179点数解答 | 2024-12-11 13:09:13)247
- Python三关挑战:文件与文件夹数量统计及路径获取(字节豆包 | 493点数解答 | 2024-12-11 13:29:49)271
- 星际编码大赛终极对决:机械星AI与异星人激战“逆序对”统计难题(字节豆包 | 509点数解答 | 2025-04-19 17:33:00)354