hdu 4884 TIANKENG’s rice shop && BestCoder Round #2 1002
来源:互联网 发布:网络信息发布规范 编辑:程序博客网 时间:2024/06/05 14:31
题意:有 N 种饭,每种饭做一轮耗时间为 T ,每一轮可以做 K 碗饭,下面是 M 个人;顺序已经排好了,当然是
先到先得了;
题解:就是模拟吧.不过有一些需要注意的地方
1.如果给当前这个人做饭,锅还剩余一些容量,可以顺便给后面已经排队的人做一些(不一定非限于队头的那个
人)2.最后输出的时候需要按照来的时间顺序输出3.貌似可能有超过23.59的情况,需要mod
总结:这个题还是花费了不少时间,1.首先需要注意的感觉还是,如果一个题半天都没改对,就应该放手去做一些
其他的事情,死扣会让头脑钻牛角尖,2.其次就是开始感觉这个题不是那么的难,就没有仔细想清楚,就开始敲代
码了,感觉这是一个非常不好的习惯,再有把握的事情也需要先做好必要的准备工作吧,浪费了一点准备时间,反
而可能节约很多的实际工作时间
#include<iostream>#include<cstring>#include<cstdio>using namespace std;typedef pair<int,int>pii;#define MAXN 1010#define MOD 1440pii ans[MAXN];struct Customer{ int minute,id,num;}customer[MAXN];int _,n,t,k,m,u,v;void deal(int i,int now,int remainder){ for(int j = i + 1;j < m && customer[j].minute <= now;j++) if(customer[j].id == customer[i].id) { if(remainder >= customer[j].num) { remainder -= customer[j].num; ans[j] = pii((now + t) % MOD / 60,(now + t) % MOD % 60); customer[j].num = 0; } else { customer[j].num -= remainder; break; } }}int main(){ scanf("%d",&_); while(_--) { scanf("%d%d%d%d",&n,&t,&k,&m); for(int i = 0;i < m;i++) { scanf("%d:%d %d %d",&u,&v,&customer[i].id,&customer[i].num); customer[i].minute = u * 60 + v; while(i && customer[i].minute < customer[i - 1].minute) customer[i].minute += MOD; } int now = customer[0].minute; for(int i = 0;i < m;i++) { now = max(customer[i].minute,now); int num = customer[i].num; if(!num)continue; now += t * (num / k); if(num % k == 0) ans[i] = pii(now % MOD / 60,now % MOD % 60); else { ans[i] = pii((now + t) % MOD / 60,(now + t) % MOD % 60); deal(i,now,k - num % k); now += t; } } for(int i = 0;i < m;i++) printf("%02d:%02d\n",ans[i].first,ans[i].second); if(_)puts(""); }}
0 0
- hdu 4884 TIANKENG’s rice shop && BestCoder Round #2 1002
- HDU 4884 TIANKENG’s rice shop(模拟)——BestCoder Round #2
- HDU 4884 Bestcoder#2-1002 TIANKENG’s rice shop【模拟一发】
- hdu 4884 TIANKENG’s rice shop(模拟)
- hdu 4884 TIANKENG’s rice shop(模拟)
- HDU-4884-TIANKENG’s rice shop
- HDU-4884-TIANKENG’s rice shop【模拟】
- hdu--4884--TIANKENG’s rice shop【模拟】
- HDU 4884 —— TIANKENG’s rice shop(模拟)
- [ACM] HDU 4884 TIANKENG’s rice shop (模拟)
- hdu 4884 TIANKENG’s rice shop(模拟)
- HDU 4884 TIANKENG’s rice shop (模拟)
- HDU TIANKENG’s rice shop(模拟)
- HDU4884 TIANKENG’s rice shop
- 【CUGBACM15级BC第二场 B】hdu 4884 TIANKENG’s rice shop
- hdu 4883 bestcoder round 2 1001 TIANKENG’s restaurant
- hdu4884 TIANKENG’s rice shop【模拟】
- HDU4884 TIANKENG’s rice shop【模拟】
- Akka学习笔记07--TypedActor(有类型的Actor)
- [leetcode] 10 Regular Expression Matching
- eclipse 皮肤 换肤
- 堆排序分析
- 如何访问android的asset目录和res目录下的文件
- hdu 4884 TIANKENG’s rice shop && BestCoder Round #2 1002
- Linux挂载数据盘
- HTML5用canvas绘制心形线
- git patch
- 屏障I/O处理
- SQL SERVER与C#的数据类型对应表
- C#中1窗口引用2窗口控件的方法
- 80端口被(Pid=4)占用的解决方法
- 策略模式