CC Hotel 客房分配 - 最小愤怒值算法
#include
int main() { int n, m; cin >> n >> m;
vector<int> rooms(m, 0); // 存储每个房间的人数
vector<int> anger(n, 0); // 存储每个客人的愤怒值
for (int i = 0; i < n; i++) {
int room;
cin >> room;
rooms[room - 1]++; // 将客人分配到对应房间,并增加房间的人数
}
int total_anger = 0;
for (int i = 0; i < m; i++) {
int left_room = i;
int right_room = (i + 1) % m;
int curr_anger = 0;
// 计算当前房间与相邻房间的愤怒值之和
curr_anger = rooms[left_room] + rooms[right_room];
// 更新总愤怒值
total_anger += curr_anger;
// 更新相邻房间的人数
rooms[left_room] = 0;
rooms[right_room] = 0;
}
cout << total_anger << endl;
return 0;
}
原文地址: https://www.cveoy.top/t/topic/qvUV 著作权归作者所有。请勿转载和采集!