pat 1017. Queueing at Bank (25)

56 篇文章 0 订阅
41 篇文章 0 订阅

queue模拟题

注意题目所求得是平均等待时间

还有 如果顾客在8点之前到达,需等到8点才能得到服务

顾客如果在17点之后到达,银行不为其提供服务,但一旦到达时间在17点之前,即使结束时间在17点之后 ,银行也要为其服务

#include<iostream>
#include<queue>
#include<vector>
#include<algorithm>
#include<stdio.h>
#include<string.h>
using namespace std;
#define S 8*60*60
#define E 17*60*60
#define INF 0x7fffffff
struct node
{
	int time;
	int process;
	int begin;
	int leave;
};
int max(int a,int b)
{
	return a>b?a:b;
}
int cmp(struct node a,struct node  b)
{
	return a.time<b.time;
}
int main()
{
	int n,k,i,h,m,s,j,min,index,t;
	while(scanf("%d%d",&n,&k)!=EOF)
	{
		vector<struct node >cus(n);
		//vector<queue<int> >winque(k);
		vector<int>now(k,S);
		for(i=0;i<n;i++)
		{
			scanf("%d:%d:%d%d",&h,&m,&s,&cus[i].process);
			cus[i].process*=60;
			cus[i].time=(h*60+m)*60+s;
		}
		sort(cus.begin(),cus.end(),cmp);
		for(i=0;i<n;i++)
		{
			min=INF;
			for(j=0;j<k;j++)
				if(min>now[j])
				{
					min=now[j];
					index=j;
				}
			cus[i].begin=max(now[index],cus[i].time);
			cus[i].leave=cus[i].begin+cus[i].process;
			now[index]=cus[i].leave;
		}
		t=0;
		s=n;
		for(i=0;i<n;i++)
		{
			//printf("%d %d %d %d\n",i,cus[i].time,cus[i].begin,cus[i].leave);
			if(cus[i].time<=E)// Anyone arrives early will have to wait in line till 08:00, 
				                  //and anyone comes too late (at or after 17:00:01) will not be served nor counted into the average.
								  //任何人只要在五点之前到达  银行就要为其服务
			{
				t+=cus[i].begin-cus[i].time;
				//printf("%d\n",t);
			}
			else
				s--;
		}
		if(s)printf("%.1lf\n",t/60.0/s);//求 等待 时间的平均值
		else
			printf("0.0\n");
	}
	return 0;
}


 

Queueing theory is a mathematical study of waiting lines or queues that arise in various real-life scenarios, such as customer service, traffic congestion, hospital emergency rooms, and telecommunications networks. Basic queueing theory involves the following concepts: 1. Arrival Process: This is the process of customers arriving at the queue. The arrival process can be modeled using different distributions, such as Poisson or exponential. 2. Service Process: This is the process of serving customers in the queue. The service process can also be modeled using different distributions, such as Poisson or exponential. 3. Queue Length: This is the number of customers waiting in the queue at any given time. 4. Queue Occupancy: This is the proportion of time that the server is busy serving customers. 5. System Capacity: This is the maximum number of customers that the system can handle at any given time. 6. Utilization: This is the proportion of time that the server is busy serving customers compared to the total time. 7. Waiting Time: This is the time that a customer spends waiting in the queue before being served. 8. Service Time: This is the time that a customer spends being served by the server. 9. Queueing Models: There are different queueing models that can be used to analyze queueing systems, such as the M/M/1 model, M/M/c model, M/G/1 model, and M/D/1 model. 10. Performance Measures: Different performance measures can be used to evaluate queueing systems, such as average waiting time, average queue length, and system throughput.
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值