博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
甲级PAT 1026 Table Tennis (30 分)(模拟+三大坑点总结)
阅读量:3898 次
发布时间:2019-05-23

本文共 1804 字,大约阅读时间需要 6 分钟。

【题意】

有一家乒乓球的店,营业时间为8:00-21:00。现在已知一天要接待的客户对数,每对客户的抵达时间、使用桌子时间和是否为VIP,然后是K张桌子,M张VIP桌和M张VIP桌的编号。要求按接待时间输出每对被服务的客户的抵达时间、开始服务时间和等待时间,然后输出每张桌子接待的客户的对数。

【题解】

需要注意的是:

①所有的客户的抵达时间在8:00-21:00没错,但是只有当开始服务时间早于21:00时才会被接待,需要输出信息。

当客户的使用时间超过2小时,按两小时算,因为最多使用两小时。

当有空闲的VIP桌子和普通桌子时,VIP用户首先优先选择VIP桌,再选择编号小的。当只有空闲的普通桌子时,VIP客户和普通客户都优先选择编号最小的空闲桌子。

等待时间按分钟四舍五入(也有可能是因为我读错以为向上取整所以觉得坑)

然后按题意慢慢模拟即可。

【代码】

#include 
using namespace std;const int maxn=1e5+5;struct p{ int date,t,is,ser=0;}f[10005];bool cmp(p a,p b){ return a.date
q[3];int main(){ int n; scanf("%d",&n); for(int i=1;i<=n;i++){ int h,m,s; scanf("%d:%d:%d %d %d",&h,&m,&s,&f[i].t,&f[i].is); f[i].date=h*60*60+m*60+s; f[i].t=min(f[i].t*60,2*60*60); } sort(f+1,f+n+1,cmp); int k,m; scanf("%d%d",&k,&m); while(m--){ int x; scanf("%d",&x); sta[x]=1; //VIP桌 } int pos=1,a[3]={0}; for(int i=8*60*60;i<21*60*60;i++){ if(pos<=n&&f[pos].date==i) q[f[pos].is].push(pos),pos++; //客户抵达,压入等待序列 if(!q[0].empty()) a[0]=q[0].front(); //普通 if(!q[1].empty()) a[1]=q[1].front(); //VIP queue
v; while(!v.empty()) v.pop(); //记录空闲的VIP桌 for(int j=1;j<=k;j++){ //遍历每张桌子 if(vis[j]&&f[vis[j]].ser+f[vis[j]].t==i) vis[j]=0; //服务完成,变成空闲 if(!vis[j]&&sta[j]) v.push(j); } while(!q[1].empty()&&!v.empty()){ //优先匹配VIP客户和VIP桌 q[1].pop(); int num=v.front(); v.pop(); vis[num]=a[1]; c[num]++; f[a[1]].ser=i; if(!q[1].empty()) a[1]=q[1].front(); else a[1]=0; } for(int j=1;j<=k;j++){ if(!vis[j]){ //可用 if(!a[0]&&!a[1]) continue; int op=0; if(a[1]&&(!a[0]||f[a[1]].date

 

转载地址:http://hhfen.baihongyu.com/

你可能感兴趣的文章
基于windows平台Git+GitHub+Hexo搭建个人博客(一)
查看>>
基于windows平台Git+GitHub+Hexo搭建个人博客(二)
查看>>
Windows平台下SVN安装配置及使用
查看>>
python简便的编辑工具:jupyter notebook
查看>>
使用pip安装的时候出现 ModuleNotFoundError: No module named ‘pip‘
查看>>
Selenium自动化测试(八)之上传文件
查看>>
Selenium UI自动化(Java篇)
查看>>
使用Fiddler模拟弱网进行测试
查看>>
使用POI读取Excel测试用例
查看>>
记一次数据推送的异常解决端口解决
查看>>
linux、mysql、nginx、tomcat 性能参数优化
查看>>
Nginx使用Linux内存加速静态文件访问
查看>>
杀掉nginx进程后丢失nginx.pid,如何重新启动nginx
查看>>
nginx另类复杂的架构
查看>>
Nginx流量复制/AB测试/协程
查看>>
使用NTP服务器完美解决VMware Linux时间无法同步问题
查看>>
机器学习笔记(3)---K-近邻算法(1)---约会对象魅力程度分类
查看>>
机器学习笔记(4)---K-近邻算法(2)---使用sklearn中的KNN算法
查看>>
数据结构——外部排序
查看>>
UNIX网络编程——System V 消息队列
查看>>