这题我以为还是之前银行排队的思路,但是做着做着就做不下去了了.看了答案我才理解到底是什么个思路. 是这样的:不同于之前排队的题,这里的K个人是同时到来的.所以首先应该让K个人的前N*M(也就是黄线内的容量)个人入队,并且是循环如N个对,直接让 i 循环到K,然后做 i %N的取余操作得到窗口索引. 入队完毕后,对于剩下的人,让他们依次选择出队最早的每个窗口. 所以,用一个Window结构体来记录每个窗口的信息:一个排队的队列,出队时间,服务结束时间. 并且要注意的是Sorry的输出情况,请看题面…
最近重拾之前半途而废的C++,恰好看到了<C++ 实现银行排队服务模拟>,但是没有实验楼的会员,看不到具体的实现,正好用来作为练习. 模拟的是银行的排队叫号系统,所有顾客以先来后到的顺序在同一个队列中等待,当有服务窗口空闲时,则队首的顾客接受服务,完成后则下一位顾客开始接受服务. 本实现是事件驱动型的,处理对象是事件而不是顾客: 有2种事件:顾客到事件和顾客离开事件. 有2个队列:顾客队列和事件队列. 程序的逻辑如下: 初始化事件队列,填充顾客到达事件: 处理事件队列的头部(总是为最早发生的事…
采用多线程模拟银行排队叫号: 关于银行拿排队号去叫号的过程我想不必过多解释了,就是有几个业务窗口,并行的处理业务,每处里完一个人,则会叫下一个排队的号去处理业务,一个人是不会被多个窗口工作人员叫号的,所以这里也涉及到了一个多线程共享数据的问题,下面用实际代码去简单模拟一下: 编译运行: ... 这个输出毫无疑问,目前是单线程动作,接下来模拟三个窗口来模拟下真实的银行处理过程: 运行: 造成的原因也比较容易找出来: 怎么共享呢,最简单的就是用static修饰变量啦,如下: 这时再运行: 关于输出顺…
[问题描述]有两个正整数数列,元素个数分别为N和M.从两个数列中分别任取一个数相乘,这样一共可以得到N*M个数,询问这N*M个数中第K小数是多少.[输入格式]输入文件名为number.in.输入文件包含三行.第一行为三个正整数N,M和K.第二行为N个正整数,表示第一个数列.第三行为M个正整数,表述第二个数列.[输出格式]输出文件名为number.out.输出文件包含一行,一个正整数表示第K小数.[输入输出样例1] number.in number.out 2 3 41 22 1 3 3 [输入输…
[问题描述] 定义一个长度为奇数的区间的值为其所包含的的元素的中位数. 现给出n个数,求将所有长度为奇数的区间的值排序后,第K大的值为多少. [输入] 输入文件名为kth.in. 第一行两个数n和k 第二行,n个数.(0<=每个数<231) [输出] 输出文件名为kth.out. 一个数表示答案. [输入输出样例] kth.in kth.out 4 3 3 1 2 4 2 [样例解释] [l,r]表示区间l~r的值 [1,1]:3 [2,2]:1 [3,3]:2 [4,4]:4 [1,3]:2…
妈的智障 #include <stdio.h> #include <memory.h> #include <math.h> #include <string> #include <vector> #include <set> #include <stack> #include <queue> #include <algorithm> #include <map> #define I sc…
  一.问题定义与分析 问题定义 •要解决的问题——银行一天之内的: 1.总客户数 2.客户总逗留时间 3.客户平均逗留时间 问题分析 •新来的人找个短的队伍,站在队尾开始排队 •排在队头的人可以办理业务 •排队等待办业务的客户是在分散的.随机的时间点到来的 •特点:离散事件.要排队 •掌握每个客户到达银行和离开银行这两个时刻 •统计出客户总数 •称客户到达银行和客户离开银行这两个时刻发生的事情为“事件” •整个模拟按事件发生的先后顺序进行处理 •事件驱动模拟 •事件的主要信息是事件类型和事件发…
题目 [GDKOI2003]最大公共子串 [题目描述] 从一个给定的串中删去(不一定连续地删去)0个或0个以上的字符,剩下的字符按原来的顺序组成的串是该串的字串.例如:"", "a", "aaa","bbb","xabb","xaaabbb"都是串"xaaabbb"的字串.(例子中的串不包括引号) 编程求N个非空串的最长公共子串的长度. 限制:2<=N<=…
1132 Cut Integer(20 分) 题意:将一个含K(K为偶数)个数字的整数Z割分为A和B两部分,若Z能被A*B整除,则输出Yes,否则输出No. 分析:当A*B为0的时候,不能被Z整除,输出No.否则会出现浮点错误. #include<cstdio> #include<cstring> #include<cstdlib> #include<string> #include<algorithm> #include<map>…
1136 A Delayed Palindrome(20 分) 题意:给定字符串A,判断A是否是回文串.若不是,则将A反转得到B,A和B相加得C,若C是回文串,则A被称为a delayed palindrome:否则继续迭代. 分析:根据题意模拟. 1.C++写法. #include<cstdio> #include<cstring> #include<cstdlib> #include<string> #include<algorithm> #…