首页 > 编程语言 >UVA210 双端队列模拟并行程序

UVA210 双端队列模拟并行程序

时间:2023-07-03 10:23:10浏览次数:39  
标签:队列 并行程序 双端 t2 t1 int str UVA210 include

#include<iostream>
#include<algorithm>
#include<string>
#include<sstream>
#include<vector>
#include<queue>
#include<cstring>
using namespace std;
const int maxn = 10001;
//uva210:题意 模拟n个程序的并行执行,有赋值,打印,lock,unlock,end五种。
//输入n,t1,t2,t3,t4,t5,Q;

int n, t1, t2, t3, t4, t5, Q;
deque<int>wait;//等待队列
deque<int>stop;//阻止队列
int num[maxn];

int main(void)
{
    cin >> n >> t1 >> t2 >> t3 >> t4 >> t5 >> Q;
    string s;
    int id = 0;
    while(getline(cin,s))
    {
        char c = s[2];
        while (Q) {
            if (c == '='&&Q-t1>=0)
            {
                int ch = s[1];
                num[ch-'a']==(int)s
            }
        }
        
    }
    
    return 0;
}
#include<iostream>
#include<stack>
#include<deque>
#include<vector>

int n, t1, t2, t3, t4, t5, Q;
deque<int>wait;//阻塞队列
deque<int>ready;//等待队列
vector<string> str;//存储执行语句
int var[101];//存储变量
int block;

void run(int i)//在ready队列中执行到第i个(str下标)的命令
{
    int time = Q;
    char c;
    while(time>0)
    {
        c = str[i][2];
        if(c=='=')
        {
            time -= t1;
            //赋值范围为0-99
            var[str[i][0] - 'a'] = isdigit(str[i][4]) ? (int)str[i][4] * 10 + str[i][5] : (int)str[i][5];
        }
        else if(c=='i')
        {
            time -= t2;
            cout << i<<' ' << var[str[i][6]] << endl;
        }
        else if(c=='c')
        {
            
            if(!ready.empty()&&block)
            {
                wait.push_back(i);
                return;
            }
            time -= t3;
            block = 1;
        }
        else if(c=='l')
        {
            if(!wait.empty())
            {
                ready.push_back(wait.front());
                wait.pop_front();
            }
            block = 0;
            time -= t4;
        }
        else 
        {
            time -= t5;
            return;
        }
    }
}

int main()
{
    //输入
    cin >> n >> t1 >> t2 >> t3 >> t4 >> t5 >> Q;
    string s;
    for(int i=1;i<=n;i++)
    {
        while(getline(cin,s))
        {
            str[i] = s;
            ready.push_front(i);//str的下标传入到ready中,之后处理
        }
    }
    //处理
    while (!ready.empty()) {
        int x = ready.front();
        ready.pop_front();
        //    cout<<x<<" ";
        run(x); // 依次执行准备列队的队头 
    }
    
}

 

标签:队列,并行程序,双端,t2,t1,int,str,UVA210,include
From: https://www.cnblogs.com/xingxingli/p/17522062.html

相关文章

  • uva246 10-20-30 (双端队列deque + vector模拟)
    【题意】:一个游戏。共52张牌(1~10中的数字)。初始状态,按输入顺序放在总堆里。然后从头开始,挨着拿7张,从左到右摆开,作为7堆。然后回到第一堆,以此循环着每次往一堆放一张。每放完一张牌,考虑下面的情况:1.这一堆的头两张与尾一张之和等于10or20or302. 这一堆的头一张与尾两张之和等......
  • 【开源游戏】Legends-Of-Heroes 基于ET 7.2的双端C#(.net7 + Unity3d)多人在线英雄联
    Legends-Of-Heroes一个LOL风格的球球大作战游戏,基于ET7.2,使用状态同步 Main基于C#双端框架[ET7.2],同步到ET主干详情请看日志。(https://github.com/egametang/ET)注意:已经升级.Net7,请安装.Net7SDK.此游戏为ET7.2的一个实践项目demo,玩法主要是球球大作战类型的吃食物吃敌人/......
  • 双端VSC-HVDC直流输电仿真模型
    双端VSC-HVDC直流输电仿真模型matlab2021a,采用双环控制,电压环和电流环,电压环采用直流电压参与PI调节,电流内环包括PI调节器与前馈解耦,整流侧与逆变侧为VSC两电平器件。直流波形输出效果理想,交流侧电压电流均为对称的三相电压电流,ID:2545684639072616......
  • 双端队列的定位
    1:可用迭代器2:地址访问#include<iostream>#include<string>#include<deque>//头文件不能少usingnamespacestd;deque<string>deq;//这里用一个string类型的deque来做演示,初始为空deque<string>::iteratorit;//提前准备一个迭代器,写法一如既往intmain(){......
  • deque:双端队列库
    #include<deque>usingnamespacestd;deque<int>deq1;//定义一个空的deque,元素类型为intdeque<int>deq2(10);//定义一个大小为10的deque,元素类型为int,初始值为0deque<int>deq3(10,1);//定义一个大小为10的deque,元素类型为int,初始值为1deque<int>deq4={1,2,3};//......
  • 双端队列数据结构
    双端队列是一种数据结构,也被称为deque或double-endedqueue。它类似于队列,但它允许从队列的两端添加或删除元素,而不仅仅是队列的一端。双端队列可以用数组或链表实现。如果使用数组实现,它可以使用循环数组的方式,使得在头尾进行插入和删除的操作可以在常数时间内完成。如果使用链......
  • 用双链表实现双端队列
    //双链表publicstaticclassNode<V>{publicVvalue;publicNode<V>last;publicNode<V>next;publicNode(Vv){value=v;last=null;next=null;}}//双端队列前后皆可进出publicstaticclassMyDequ......
  • nginx+tomcat双端口实现负载均衡
    nginx基础配置---点击tomcat基础配置---点击上述配置完成之后进行对tomcat配置不同端口tomcat设置端口#移动tomcat设置两个主目录[root@lyxlocal]#mvapache-tomcat-8.5.79tomcat-home[root@lyxlocal]#cp-Rtomcat-hometomcat-8080[root@lyxlocal]#cp-Rtomcat-home......
  • 「双端队列BFS」电路维修
    本题为3月23日23上半学期集训每日一题中B题的题解题面题目描述Ha'nyu是来自异世界的魔女,她在漫无目的地四处漂流的时候,遇到了善良的少女Rika,从而被收留在地球上。Rika......
  • 华为OD机试 特异性双端队列
    特异性双端队列......