hdoj 4883

饭店因为过于好吃而火爆了!

不同时段顾客数不同
但每个时段所有的顾客都要有椅子坐
也不要浪费多的椅子
所以
椅子数量只要刚好满足

  • 顾客数最多时

所需椅子数即可
所以找一找什么时候人最多吧!

  • 怎么找呢
    因为时间是整数
    因此是间断的不连续的
    就可以用一个数组表示每一分钟的人数
    然后找到人数最大值就好啦

代码如下

#include<cstring>
#include<cstdio>
#include<iostream>
#include<algorithm>
using namespace std;
struct customer{
	int a;
	int b;
	int c;
}a[10010];
int main()
{
	int t,n,hh1,mm1,hh2,mm2,sum[10010];
	cin>>t;
	while(t--)
	{
		cin>>n;
		memset(sum,0,sizeof(sum));
		for(int i=0;i<n;i++)
		{
			scanf("%d",&a[i].a);
			scanf("%d:",&hh1);
			scanf("%d",&mm1);
			scanf("%d:",&hh2);
			scanf("%d",&mm2);
			a[i].b=hh1*60+mm1;          //时间用分钟表示
			a[i].c=hh2*60+mm2;
		    for(int j=a[i].b;j<a[i].c;j++ )
			{
				sum[j]=sum[j]+a[i].a ;   ///每一分钟的人数
			 } 
    	}
    	sort(sum,sum+2001);
		cout<<sum[2000]<<endl;
	}
	return 0;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值