UVa 822 - Queue and A
来源:互联网 发布:淘宝店突然流量变0 编辑:程序博客网 时间:2024/06/05 17:36
昨天ACM培训时开始写的,一看就有思路,建了两个结构体表示topics和员工。循环中间多加了个else一直没检查出来,错了好多次。
#include<iostream>#include<algorithm>#include<vector>using namespace std;struct topic{ int tid,num,t0,t,dt,q_num,finished;};struct member{ int pid,k,work_left,last; vector<int>pidk; bool operator <(const member&a) const{ if(a.last==last) return a.pid>pid; else return a.last>last; }};vector<topic>topics;vector<member>staff;int main(){ int m,n,kase=0; while(cin>>m&&m){ int time=0,need=0; while(m--){ topic a; cin>>a.tid>>a.num>>a.t0>>a.t>>a.dt; a.q_num=a.finished=0; topics.push_back(a); } cin>>n; int z=0; while(n--){ z++; member a; int x; a.work_left=a.last=0; cin>>a.pid>>a.k; a.pid=z; for(int i=0;i<a.k;i++){ cin>>x; a.pidk.push_back(x); } staff.push_back(a); } while(1){ for(int i=0;i<topics.size();i++) if(time>=topics[i].t0&&topics[i].finished+topics[i].q_num<topics[i].num){ topics[i].t0+=topics[i].dt; topics[i].q_num=min(++topics[i].q_num,topics[i].num-topics[i].finished); } sort(staff.begin(),staff.end()); for(int i=0;i<staff.size();i++){ if(!staff[i].work_left) for(int j=0;j<staff[i].pidk.size();j++) for(int k=0;k<topics.size();k++) if(staff[i].pidk[j]==topics[k].tid&&topics[k].q_num){ staff[i].last=time; staff[i].work_left=topics[k].t; topics[k].q_num--; need=max(need,topics[k].t); if(++topics[k].finished==topics[k].num){ topics.erase(topics.begin()+k); if(!topics.size()){ time+=need; goto END; } } goto NEXT_P; } NEXT_P: continue; } time++; need=max(--need,0); for(int i=0;i<staff.size();i++) staff[i].work_left=max(--staff[i].work_left,0); } END: kase++; cout<<"Scenario "<<kase<<": All requests are serviced within "<<time<<" minutes."<<endl; staff.clear(); topics.clear(); } return 0;}
0 0
- UVa 822 - Queue and A
- UVA 822 Queue and A
- 822 - Queue and A
- UVA - 133 The Dole Queue 单纯模拟:1A
- UVa822 - Queue and A(看着也写不利索的结构体)
- Team Queue(queue) - uva 540
- UVa 540 Team Queue
- uva 540 team queue
- Uva 540 Team Queue
- uva 540 - Team Queue
- UVa 540 - Team Queue
- UVA 540 Team Queue
- UVA 5002 The Queue
- uva 540 Team Queue
- uva 540 Team Queue
- Uva 540 Team Queue
- UVA 10128 Queue
- UVa 540 - Team Queue
- js中的replaceAll
- UVa 10363 - Tic Tac Toe
- POJ 1651 Multiplication Puzzle(区间dp)
- POJ1056 IMMEDIATE DECODABILITY【数据结构】
- 第12周项目2-(1)求n个数的最大公约数
- UVa 822 - Queue and A
- Java多线程基础知识点
- Qt模型视图架构中关键类的文档链接
- UML---用例图
- LINUX下目标文件的BSS段、数据段、代码段
- 第十二周项目3递归函数求解5 多次转化2进制
- ListView中嵌套的EditText不能滚动的问题
- 浅谈分治算法的时间复杂度分析
- 网络视频嗅探的几种方法