1. 程式人生 > >銀行排隊問題之單佇列多視窗服務 (25 分)

銀行排隊問題之單佇列多視窗服務 (25 分)

假設銀行有K個視窗提供服務,視窗前設一條黃線,所有顧客按到達時間在黃線後排成一條長龍。當有視窗空閒時,下一位顧客即去該視窗處理事務。當有多個視窗可選擇時,假設顧客總是選擇編號最小的視窗。

本題要求輸出前來等待服務的N位顧客的平均等待時間、最長等待時間、最後完成時間,並且統計每個視窗服務了多少名顧客。

輸入格式:

輸入第1行給出正整數N(≤1000),為顧客總人數;隨後N行,每行給出一位顧客的到達時間T和事務處理時間P,並且假設輸入資料已經按到達時間先後排好了順序;最後一行給出正整數K(≤10),為開設的營業視窗數。這裡假設每位顧客事務被處理的最長時間為60分鐘。

輸出格式:

在第一行中輸出平均等待時間(輸出到小數點後1位)、最長等待時間、最後完成時間,之間用1個空格分隔,行末不能有多餘空格。

在第二行中按編號遞增順序輸出每個視窗服務了多少名顧客,數字之間用1個空格分隔,行末不能有多餘空格。

輸入樣例:

9
0 20
1 15
1 61
2 10
10 5
10 3
30 18
31 25
31 2
3

輸出樣例:

6.2 17 61
5 3 1

模擬一下就好了

#include <bits/stdc++.h>
using namespace std;

struct waiter
{
    int t,h,length;
} a[1001];

int x[11]= {0};//櫃檯時間
int c[11]= {0};//計數客戶、
int len=0;
int main()
{
    int
n,k; cin>>n; for(int i=1; i<=n; i++) { cin>>a[i].t>>a[i].h; if(a[i].h>60)a[i].h=60;//事務被處理的最長時間為60分鐘 } cin>>k; for(int i=1; i<=n; i++) { int pai=1;//有多個視窗可選擇時,顧客總是選擇編號最小的視窗。 for(int j=1;j<=k;j++) { if
(x[pai]>x[j])pai=j;//哪個櫃檯更早空閒 if(a[i].t>=x[pai])break;//顧客到來有空閒視窗 } if(a[i].t>=x[pai]) { x[pai]=a[i].t+a[i].h;//視窗時間更新 a[i].length=0;//顧客無需等待 } else { a[i].length=x[pai]-a[i].t;//顧客等待時間 x[pai]=x[pai]+a[i].h;//視窗時間更新 } c[pai]++;//視窗處理顧客人數更新 } int sum=0,sum2=0,sum3=0; for(int i=1;i<=n;i++) { if(sum2<a[i].length)sum2=a[i].length;//最長等待時間 sum+=a[i].length;//總的等待時間 } for(int i=1;i<=k;i++) { if(sum3<x[i])sum3=x[i];//視窗最長的時間也就是全部完成的時間 } printf("%.1lf ",sum*1.0/n); cout<<sum2<<" "<<sum3<<endl; for(int i=1;i<=k;i++) { if(i!=1)cout<<" "; cout<<c[i]; } return 0; }

相關推薦

銀行排隊問題佇列視窗服務 25

假設銀行有K個視窗提供服務,視窗前設一條黃線,所有顧客按到達時間在黃線後排成一條長龍。當有視窗空閒時,下一位顧客即去該視窗處理事務。當有多個視窗可選擇時,假設顧客總是選擇編號最小的視窗。 本題要求輸出前來等待服務的N位顧客的平均等待時間、最長等待時間、最後完成時

資料結構—— 銀行排隊問題佇列視窗服務

題目大意:排隊“夾塞”是引起大家強烈不滿的行為,但是這種現象時常存在。在銀行的單視窗排隊問題中,假設銀行只有1個視窗提供服務,所有顧客按到達時間排成一條長龍。當視窗空閒時,下一位顧客即去該視窗處理事務。此時如果已知第i位顧客與排在後面的第j位顧客是好朋友,並且願

天梯賽 銀行排隊問題佇列視窗服務 (25)

銀行排隊問題之單佇列多視窗服務 (25分) 假設銀行有K個視窗提供服務,視窗前設一條黃線,所有顧客按到達時間在黃線後排成一條長龍。當有視窗空閒時,下一位顧客即去該視窗處理事務。當有多個視窗可選擇時,假設顧客總是選擇編號最小的視窗。 本題要求

資料結構課設 銀行排隊問題佇列視窗服務

5-7 銀行排隊問題之單佇列多視窗服務   (25分) 假設銀行有KK個視窗提供服務,視窗前設一條黃線,所有顧客按到達時間在黃線後排成一條長龍。當有視窗空閒時,下一位顧客即去該視窗處理事務。當有

習題8.1 銀行排隊問題佇列視窗服務

習題8.1 銀行排隊問題之單佇列多視窗服務(25 分) 假設銀行有K個視窗提供服務,視窗前設一條黃線,所有顧客按到達時間在黃線後排成一條長龍。當有視窗空閒時,下一位顧客即去該視窗處理事務。當

資料結構——銀行排隊問題佇列視窗加VIP服務

題目大意:有很多個服務視窗,有一個視窗是VIP視窗,如果這個視窗有空閒,並且排隊等待的人裡有VIP,那麼VIP先去這個視窗辦理業務(SORRY,充錢就是了不起),如果果有多個視窗可以選擇,顧客會優先選擇視窗編號小的。 題目連結:https://pintia.cn/problem-sets/1

4 銀行排隊問題佇列視窗加VIP服務 (30)----模擬

4 銀行排隊問題之單佇列多視窗加VIP服務   (30分) 假設銀行有KK個視窗提供服務,視窗前設一條黃線,所有顧客按到達時間在黃線後排成一條長龍。當有視窗空閒時,下一位顧客即去該視窗處理事務。當有多個視窗可選擇時,假設顧客總是選擇編號最小的視窗。 有些銀行會給VI

銀行排隊問題佇列視窗加VIP服務

#include <bits/stdc++.h> using namespace std; typedef struct Window { int time; int num; }Winow; typedef struct Person { int atime, wtime,

自動化運維詳細部署安裝Ansible服務超簡單

信息 ges 圖片 安裝epel源 python開發 epel源 登陸 監控 系統配置 簡介: ansible是新出現的自動化運維工具,基於Python開發,集合了眾多運維工具(puppet、cfengine、chef、func、fabric)的優點,實現了批量系統配置、批

第三章作業題3--佇列-計算機17級 7-1 銀行業務佇列簡單模擬 25

7-1 銀行業務佇列簡單模擬 (25 分) 設某銀行有A、B兩個業務視窗,且處理業務的速度不一樣,其中A視窗處理速度是B視窗的2倍 —— 即當A視窗每處理完2個顧客時,B視窗處理完1個顧客。給定到達銀行的顧客序列,請按業務完成的順序輸出顧客序列。假定不考慮顧客先後到達的時

7-5 銀行業務佇列簡單模擬 25

7-5 銀行業務佇列簡單模擬 (25 分) 設某銀行有A、B兩個業務視窗,且處理業務的速度不一樣,其中A視窗處理速度是B視窗的2倍 —— 即當A視窗每處理完2個顧客時,B視窗處理完1個顧客。給定到達銀行的顧客序列,請按業務完成的順序輸出顧客序列。假定不考慮顧客先後到達的時間

因子 & 因子策略基於JoinQuant

## step1:匯入所需的庫import pandas as pdfrom pandas import Series, DataFrameimport numpy as npimport statsmodels.api as smimport scipy.stats as scsimport matplo

7-7 銀行業務佇列簡單模擬25

設某銀行有A、B兩個業務視窗,且處理業務的速度不一樣,其中A視窗處理速度是B視窗的2倍 —— 即當A視窗每處理完2個顧客時,B視窗處理完1個顧客。給定到達銀行的顧客序列,請按業務完成的順序輸出顧客序列。假定不考慮顧客先後到達的時間間隔,並且當不同視窗同時處理完2個顧客時,A視

7-18 銀行業務隊列簡單模擬25

時間間隔 int fin scanf 就是 偶數 static log 辦理 設某銀行有A、B兩個業務窗口,且處理業務的速度不一樣,其中A窗口處理速度是B窗口的2倍 —— 即當A窗口每處理完2個顧客時,B窗口處理完1個顧客。給定到達銀行的顧客序列,請按業務完成的順序輸出

PTA 暢通工程區域性最小花費問題 35

  某地區經過對城鎮交通狀況的調查,得到現有城鎮間快速道路的統計資料,並提出“暢通工程”的目標:使整個地區任何兩個城鎮間都可以實現快速交通(但不一定有直接的快速道路相連,只要互相間接通過快速路可達即可)。現得到城鎮道路統計表,表中列出了任意兩城鎮間修建快速路的費用,以及該道路是否已經修

6-2 雙端佇列 25

雙端佇列(deque,即double-ended queue的縮寫)是一種具有佇列和棧性質的資料結構,即可以(也只能)線上性表的兩端進行插入和刪除。若以順序儲存方式實現雙端佇列,請編寫例程實現下列操作: Push(X,D):將元素X插入到雙端佇列D的頭; Pop(D):刪除雙端佇列D

**7-6 求整數序列中出現次數最的數 10 **c語言解答

**7-6 求整數序列中出現次數最多的數 (10 分)**c語言解答 本題要求統計一個整型序列中出現次數最多的整數及其出現次數。 輸入格式: 輸入在一行中給出序列中整數個數N(0<N≤1000),以及N個整數。數字間以空格分隔。 輸出格式: 在一行中輸出出現次數最多的整數及

PAT (Advanced Level) Practice 1003 Emergency 25 源最短路變式

As an emergency rescue team leader of a city, you are given a special map of your country. The map shows several scattered cities connected by some ro

ccf歷年第四題java解答-201503-4-網路延時90

使用bfs求樹的直徑,執行超時,90分 import java.util.LinkedList; import java.util.Queue; import java.util.Scanner; class Node{ public int no; public int

ccf歷年第四題java解答-201412-4-最優灌溉100

使用kruskal求解,耗時943ms,得分100 徘徊在超時的邊緣,同樣的程式碼,有時候提交是100分,有時候是超時90分,還有時候是超時80分== import java.util.ArrayList; import java.util.Collections; import jav