PAT甲1017 Queueing at Bank (25)(25 分)

#include <stdio.h>
#include <math.h>
#include <stdlib.h>
#include <string.h>
#include <algorithm>
using namespace std;

struct customer
{
    int arrivetime;
    int starttime;
    int endtime;
    int lasttime;
    int waittime;
}c[10010];

struct line
{
    int index;
    int endtime;
    line()
    {
        endtime=8*3600;
    }
}l[110];

int N,K;
int opentime=8*3600;
int closetime=17*3600;

bool cmp1(customer a,customer b)
{
    return a.arrivetime<b.arrivetime;
}

bool cmp2(line a,line b)
{
    if(a.endtime!=b.endtime)return a.endtime<b.endtime;
    else return a.index<b.index;
}

void allot(customer &a,line &l)
{
    a.starttime=max(a.arrivetime,l.endtime);
    l.endtime=a.starttime+min(a.lasttime,60)*60;
    a.endtime=l.endtime;
    a.waittime=a.starttime-a.arrivetime;
}

int main()
{
    scanf("%d%d",&N,&K);
    int h,m,s;
    for(int i=0;i<N;i++)
    {
        scanf("%d:%d:%d %d",&h,&m,&s,&c[i].lasttime);
        c[i].arrivetime=h*3600+m*60+s;
    }
    for(int i=0;i<K;i++)
    {
        l[i].index=i;
    }
    sort(c,c+N,cmp1);
    int total=0;
    int num=0;
    for(int i=0;i<N;i++)
    {
        sort(l,l+K,cmp2);
        allot(c[i],l[0]);
        if(c[i].arrivetime<=closetime)
        {
            num++;
            total+=c[i].waittime;
        }
        else break;
    }
    printf("%.1f",total*1.0/num/60);
    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.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值