HDU4883TIANKENG’s restaurant

来源:互联网 发布:大数据领域的权威人物 编辑:程序博客网 时间:2024/06/05 09:45

题目:HDU4883TIANKENG’s restaurant


题目大意:一间餐厅,给你每组客人的人数和来的时间,离开的时间,问最少需要的椅子。


解题思路:这题本来想用区间覆盖做,可是后面发觉不太对。这题貌似暴力也是可以过的,因为时间才1440.其中的一种做法:把每个区间的开始和结束时间点都标记上是来人还是走人,对应的椅子数加上减去。然后在枚举一下时间,在这个过程中维护椅子的最大值。也可以把出入的时间点记录下来,因为这些时间点人数是在变化的,然后也是维护最大值,但是要记得重复的时间点不要加多次。


代码:

#include <cstdio>#include <cstring>#include <algorithm>using namespace std;const int N = 2005;int c[N];int main () {int T;int num, h, m;int ans, n;scanf ("%d", &T);while (T--) {scanf ("%d", &n);memset (c, 0, sizeof (c));for (int i = 0; i < n; i++) {scanf ("%d", &num);scanf ("%d:%d", &h, &m);c[h * 60 + m] += num;scanf ("%d:%d", &h, &m);c[h * 60 + m] -= num;}int ans = 0;int tmp = 0;for (int i = 0; i < N; i++) {tmp += c[i];if (tmp > ans)ans = tmp;}printf ("%d\n", ans);}return 0;}


0 0
原创粉丝点击