博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
6-1 并行程序模拟 uva210
阅读量:5290 次
发布时间:2019-06-14

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

 

用到了 deque 和queue

操作说明:

queue  qu:      qu.push(x); 

                        int d=qu.front();

                          qu.pop();        和栈一样只有push和pop操作,front是看第一个!   栈里面是top

 

deque de:    de.push_front(x);

                       de.push_back(x);

                      int x=de.front();

                      de.pop_front();

                     de.back_front();//push 和pop 加上后缀

 

检查了一个小时 发现是头文件有问题    :当使用bool时  不能用 include<bits/stdc++.h>

 

 

一开始题目理解错误 弄了好久  原来是一个程序一个程序往下!明明说的很清楚

一个模拟题 也不算太难  熟练使用queue和deque 的各种操作就好了

 

1. s == "end"   string 类型可以直接这样判断 

 

2、其中的  if(s == "") continue; 没收各种垃圾语句和字符

 

 

 

#include
using namespace std;int val[26],t[6],Q,q[100];bool lock;deque
de;queue
zz;vector
ans[10000];void run(int x);int main(){ int cas;cin>>cas; while(cas--) { int n; cin>>n; for(int i=0;i<5;i++) cin>>t[i]; cin>>Q;getchar(); for(int i=1;i<=n;i++) { ans[i].clear(); string s; while(getline(cin,s)) { if(s=="end")break; else ans[i].push_back(s); } de.push_back(i); } memset(q,0,sizeof(q)); memset(val,0,sizeof(val)); while(!de.empty())//通过队列里是否还有任务等待判定 { int x=de.front(); de.pop_front(); run(x); } } return 0;}void run(int x){ int v=0; int t1=Q; while(t1>0) { string aim=ans[x][ q[x] ];//每次都要读取命令 放在外面是错的 if(aim[2]=='=') { t1-=t[0]; v=aim[4]-'0';if(isdigit(aim[5]))v=v*10+aim[5]-'0'; val[ aim[0]-'a' ]=v; } else if(aim[0]=='p') { t1-=t[1]; printf("%d: %d\n",x,val[ aim[6]-'a' ]); } else if(aim[0]=='l') { t1-=t[2]; if(!lock) lock=!lock; else {zz.push(x);return ;} } else if(aim[0]=='u') { t1-=t[3]; if(lock) lock=!lock; if(!zz.empty())//题意! { int d=zz.front();zz.pop(); de.push_front(d); } } else return ; q[x]++;//放在上面自加是错误的 说明进入阻止队列时那次不算 } de.push_back(x);}
View Code

 

转载于:https://www.cnblogs.com/bxd123/p/10285548.html

你可能感兴趣的文章
基于SQL调用Com组件来发送邮件
查看>>
关于Mysql select语句中拼接字符串的记录
查看>>
动态规划 例子与复杂度
查看>>
安装webpack-dev-server后,npm run dev报错
查看>>
[BZOJ4567][SCOI2016]背单词(Trie+贪心)
查看>>
git回退到某个版本并提交
查看>>
查看oracle数据库的连接数以及用户
查看>>
简单几行js实现tab选项切换效果
查看>>
关于更改滚动条样式
查看>>
【数据结构】栈结构操作示例
查看>>
中建项目环境迁移说明
查看>>
三.野指针和free
查看>>
VIO的Bundle Adjustment推导
查看>>
activemq5.14+zookeeper3.4.9实现高可用
查看>>
asp.net FileUpload控件文件格式的判断及文件大小限制
查看>>
angular(1.5.8)
查看>>
h5的video标签支持的视频格式
查看>>
TCP/IP详解学习笔记(3)IP协议ARP协议和RARP协议
查看>>
简单【用户输入验证】
查看>>
学android:直接用jdk来helloworld
查看>>