【题目描述】
  老师给了 T 份 MPI 的样例代码,每份代码都实现了 n 个进程通信。这些进程标号 从 0 到 n − 1,每个进程会顺序执行自己的收发指令,如:“S x”,“R x”。“S x”表示向 x 号进程发送数据,“R x”表示从 x 号进程接收数据。每一对收发命令必须匹配执行才 能生效,否则会“死锁”。
举个例子,x 号进程先执行发送命令“S y”,y 号进程必. 须. 执行接送命令“R x”,这 一对命令才执行成功。否则 x 号进程会一直等待 y 号进程执行对应的接收命令。反之, 若 y 号进程先执行接收命令“R x”,则会一直等待 x 号进程执行发送命令“S y”,若 x 号进程一直未执行发送命令“S y”,则 y 号进程会一直等待 x 号进程执行对应的发送 命令。上述这样发送接收命令不匹配的情况都会造成整个程序出现“死锁”。另外,x 号进程不会执行“S x”或“R x”,即不会从自己的进程发消息.
  现在老师请你判断每份样例代码是否会出现“死锁”的情况。每个进程的指令最少 有 1 条,最多有 8 条,这些指令按顺序执行,即第一条执行完毕,才能执行第二条,依 次到最后一条。
【输入格式】
  从标准输入读入数据。 输入第一行两个正整数 T, n,表示有 T 份样例代码,实现了 n 个进程通信。 接下来有 T × n 行,每行有若干个(1 − 8 个)字符串,相邻之间有一个空格隔开
(比如,“S1”表示向 1 号进程发送消息,“R1”表示从 1 号进程接收消息。细节请 参考样例。)
【输出格式】
  输出到标准输出。输出共 T 行,每行一个数字,表示对应样例代码是否出现“死锁”的情况。1 表示 死锁,0 表示不死锁
 

CCF 消息传递接口 (队列) 201903-4 (100分)的更多相关文章

  1. CCF(消息传递口:80分):字符串相关+队列

    消息传递口 201903-4 本题主要是利用队列进行模拟,因为一开始我没有注意到要按照顺序,所以一开始的解法错误. #include<iostream> #include<algor ...

  2. CCF认证 201903-4消息传递接口

    题目 代码 #include <iostream> #include <stdio.h> #include <stdlib.h> #include <stri ...

  3. CCF(除法):线段树区间修改(50分)+线段树点修改(100分)+线段树(100分)

    除法 201709-5 这道题有很多种方法来做,最常用的就是线段树和树状数组. 如果使用线段树来做,就会想到区间修改的update函数.但是这里可能会涉及到v是1或者a[j]是0的情况,所以用这种方法 ...

  4. 随机获得MySQL数据库中100条数据方法 驾照题库项目 MVC架构 biz业务层的实现类 根据考试类型rand或order通过dao数据访问层接口得到数据库中100或全部数据

    package com.swift.jztk.biz; import java.util.Collections; import java.util.Comparator; import java.u ...

  5. Coursera Algorithms Programming Assignment 2: Deque and Randomized Queue (100分)

    作业原文:http://coursera.cs.princeton.edu/algs4/assignments/queues.html 这次作业与第一周作业相比,稍微简单一些.有三个编程练习:双端队列 ...

  6. CCF-CSP题解 201903-4 消息传递接口

    求并行的各个进程,且进程内部顺序执行的情况下,会不会出现"死锁". 首先用\(%[^\n]\)将每个进程读入.最后过不了居然是因为\(str[\ ]\)开小了(悲喜交加.存储在\( ...

  7. 【NLP】BLEU值满分是100分吗?

    为了解决这个问题,首先需要知道BLEU值是如何计算出来的. BLEU全称是Bilingual Evaulation Understudy.其意思是双语评估替补.所谓Understudy(替补),意思是 ...

  8. Coursera Algorithms Programming Assignment 3: Pattern Recognition (100分)

    题目原文详见http://coursera.cs.princeton.edu/algs4/assignments/collinear.html 程序的主要目的是寻找n个points中的line seg ...

  9. CCF201409-2 画图 java(100分)

    试题编号: 201409-2 试题名称: 画图 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述 在一个定义了直角坐标系的纸上,画一个(x1,y1)到(x2,y2)的矩形指将横坐 ...

随机推荐

  1. minecraft初探

    1.在确保客户端和服务器的版本一致的情况下,如果登录出现客户端直接关闭,查看服务器端信息是提示id为空,请注意是否设置了: online-mode=false

  2. 在配置hibernate.cfg.xml时需指定使用数据库的方言:

    在配置hibernate.cfg.xml时需指定使用数据库的方言: 例: <property name="dialect">org.hibernate.dialect. ...

  3. WinHex18.4算法分析

    经过分析,注册码分为六个部分: Name: "xxx" Addr1: "yyy" Addr2: "zzz" 这三个字符不代表长度 Key1: ...

  4. cordova/phonegap/webapp性能优化方法

    1.有条件可以自己做UI,不要用框架.用框架的话不要用jquery mobile,用sencha touch或者jqmobi(app framework) 2.不要在服务器生成UI,在本地生成. 3. ...

  5. python之路-----MySql操作二

    一.主键 1.每个 表只有一个主键 2.每个主键可以由多个列组成.(如果主键由多个组成,只要有一行列值不等即可) CREATE TABLE NAME ( id INT auto_increment, ...

  6. EFCore Lazy Loading + Inheritance = 干净的数据表 (二) 【献给处女座的DB First程序猿】

    前言 本篇是上一篇EFCore Lazy Loading + Inheritance = 干净的数据表 (一) [献给处女座的DB First程序猿] 前菜 的续篇.这一篇才是真的为处女座的DB Fi ...

  7. unity重写软键盘for Android NGUI

    一 原因 以为某些原因,需要重写Unity游戏中Android的软键盘的样式,然而unity对android和ios的ios的软键盘都有封装,在Unity中TouchScreenKeyboard.Op ...

  8. easyui datagrid 后台返回所有数据,前台分页

    function pagerFilter(data) { if (typeof data.length == 'number' && typeof data.splice == 'fu ...

  9. maven快速自动更新子模块项目的版本号

    当一个版本发布,新起一个版本时,我们需要更改一下项目中的版本号.一个maven工程,如果只是一个单一的主项目,那么只要手动修改一下 pom.xml 就 可以了,耗不了多少时间.但是如果这个maven项 ...

  10. C++ Coroutine简明教程

    在C++里,一个函数如果其函数体实现中包含co_await.co_yield.co_return中任何一个关键字,那么这个函数就是一个coroutine.其中: co_await:挂起当前的corou ...