HDU杭电4883 TIANKENG’s restaurant

Problem Description

TIANKENG manages a restaurant after graduating from ZCMU, and tens of thousands of customers come to have meal because of its delicious dishes. Today n groups of customers come to enjoy their meal, and there are Xi persons in the
ith group in sum. Assuming that each customer can own only one chair. Now we know the arriving time STi and departure time EDi of each group. Could you help TIANKENG calculate the minimum chairs he needs to prepare so that every customer can take a seat when
arriving the restaurant?

Input

The first line contains a positive integer T(T<=100), standing for T test cases in all.

Each cases has a positive integer n(1<=n<=10000), which means n groups of customer. Then following n lines, each line there is a positive integer Xi(1<=Xi<=100), referring to the sum of the number of the ith group people, and the arriving time STi and departure
time Edi(the time format is hh:mm, 0<=hh<24, 0<=mm<60), Given that the arriving time must be earlier than the departure time.

Pay attention that when a group of people arrive at the restaurant as soon as a group of people leaves from the restaurant, then the arriving group can be arranged to take their seats if the seats are enough.

Output

For each test case, output the minimum number of chair that TIANKENG needs to prepare.

Sample Input

2
2
6 08:00 09:00
5 08:59 09:59
2
6 08:00 09:00
5 09:00 10:00

Sample Output

11
6

//我在比赛时写的代码,又错了,思路我觉得没有错,知道的大神帮我纠正一下

#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
struct people
{
    char st[20];//来的时间
    char et[20];//走的时间
    int sum;
}arr[10010];
bool cmp(people a,people b)
{
    return strcmp(a.et,b.et)<0;
}
int main()
{
    int t,n,i;
    scanf("%d",&t);
    while(t--)
    {
        scanf("%d",&n);
        for(i=0;i<n;++i)
            scanf("%d %s %s",&arr[i].sum,arr[i].st,arr[i].et);//以前写过一道题,这个时间可以用字符串比较,因为是按照一定格式写的,所以以字符串输入没问题
        sort(arr,arr+n,cmp);
        int cnt=arr[0].sum;

        for(i=1;i<n;++i)
        {
            if(strcmp(arr[i-1].et,arr[i].st)>0)//如果有公共部分
            {
                cnt+=arr[i].sum;
            }
            else
            {
                cnt=arr[i].sum>cnt?arr[i].sum:cnt;
            }
        }
        printf("%d\n",cnt);
    }
    return 0;
}

//ac代码

/*
题意为:用最少的座位数迎接在不同时间段来的客人 

*/
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
int a[1000010];
int main()
{
	int t,n,s;
	int i,j;
	int max;
	int hour1,hour2,min1,min2;
	scanf("%d",&t);
	while(t--)
	{
		memset(a,0,sizeof(a));//一开始要清零
		scanf("%d",&n);
		max=-100;//纪录最小的座位
		for(i=0;i<n;++i)
		{
			scanf("%d %d:%d %d:%d",&s,&hour1,&min1,&hour2,&min2);//s表示这个时间段来的人数
			int sum1=hour1*60+min1;//每个时间都有一个sum1和sum2这个区间
			int sum2=hour2*60+min2;

			for(j=sum1;j<sum2;++j)//当两区间有公共部分时,数组a[i]刚才也存了一个数了
			{
				a[j]+=s;
				if(a[j]>max)//当数组a纪录的座位数大于max,要把max更新
					max=a[j];
			}
		}
		printf("%d\n",max);
	}
	return 0;
}

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-01 15:01:33

HDU杭电4883 TIANKENG’s restaurant的相关文章

杭电 4883 TIANKENG’s restaurant (求饭店最少需要座椅)

Description TIANKENG manages a restaurant after graduating from ZCMU, and tens of thousands of customers come to have meal because of its delicious dishes. Today n groups of customers come to enjoy their meal, and there are Xi persons in the ith grou

hdu 4883 TIANKENG’s restaurant(暴力)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4883 Problem Description TIANKENG manages a restaurant after graduating from ZCMU, and tens of thousands of customers come to have meal because of its delicious dishes. Today n groups of customers come t

HDU 4883 TIANKENG’s restaurant Bestcoder 2-1(模拟)

TIANKENG's restaurant Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 131072/65536 K (Java/Others) Total Submission(s): 0    Accepted Submission(s): 0 Problem Description TIANKENG manages a restaurant after graduating from ZCMU, and tens of t

HDU 4883 TIANKENG’s restaurant(区间选点)

HDU 4883 TIANKENG's restaurant 题目链接 题意:给定一些时间作为区间,和一个人数,问要安排多少人去看管(一个人只能看管一个人) 思路:普通的区间选点问题,一个区间拆成一个进入点一个出去点,然后排序循环求答案即可 代码: #include <cstdio> #include <cstring> #include <algorithm> using namespace std; const int N = 20005; struct Man {

HDU 4883 TIANKENG’s restaurant (贪心)

链接:带我学习,带我飞 第一次BC,稳挂,WA n多次,今天重新做了一下 略挫 #include <iostream> #include <cstdio> #include <cstdlib> #include <cstring> #include <map> #include <string> #include <vector> #include <set> #include <algorithm>

HDU 4883 TIANKENG’s restaurant (区间更新)

Problem Description TIANKENG manages a restaurant after graduating from ZCMU, and tens of thousands of customers come to have meal because of its delicious dishes. Today n groups of customers come to enjoy their meal, and there are Xi persons in the

HDU 4883 TIANKENG’s restaurant

Problem Description TIANKENG manages a restaurant after graduating from ZCMU, and tens of thousands of customers come to have meal because of its delicious dishes. Today n groups of customers come to enjoy their meal, and there are Xi persons in the

HDOJ 4883 TIANKENG’s restaurant

题目: TIANKENG's restaurant Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 131072/65536 K (Java/Others) Total Submission(s): 249    Accepted Submission(s): 125 Problem Description TIANKENG manages a restaurant after graduating from ZCMU, and t

『ACM C++』HDU杭电OJ | 1415 - Jugs (灌水定理引申)

今天总算开学了,当了班长就是麻烦,明明自己没买书却要带着一波人去领书,那能怎么办呢,只能说我善人心肠哈哈哈,不过我脑子里突然浮起一个念头,大二还要不要继续当这个班委呢,既然已经体验过就可以适当放下了吧,用心在自己的研究上.晚上级会开完也就八点多了,开始打打题,今天在HDU杭电的ACM集训题看到一个奇葩的题,前来献上. 今日推荐: <全球风暴> 一部宇宙航空和地球气候片的良心佳作,后期特效建模都是特别杠杠的大片,不会让你失望的哟,我已经三刷了哈哈哈.这部片在爱奇艺有上线,有兴趣的朋友可以看看鸭.