#include #include using namespace std;

int main() { int n, m; cin >> n >> m; // 输入理发师数量和顾客数量 queue q; // 顾客队列 for (int i = 1; i <= m; i++) { int t; cin >> t; // 输入每个顾客需要理发的时间 q.push(t); // 将顾客加入队列 } int ans = 0; // 记录总等待时间 vector barbers(n, 0); // 记录每个理发师的剩余时间 while (!q.empty()) { // 当顾客队列不为空时 int min_time = barbers[0]; int min_index = 0; for (int i = 1; i < n; i++) { if (barbers[i] < min_time) { min_time = barbers[i]; min_index = i; } } // 找到空闲时间最短的理发师 int t = q.front(); q.pop(); ans += min_time; barbers[min_index] = min_time + t; // 更新理发师的剩余时间 } cout << ans << endl; // 输出总等待时间 return 0; }

C++ 代码解决理发师问题:队列和循环结构实现

原文地址: https://www.cveoy.top/t/topic/n7wO 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录