题目

代码

#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <string>
#include <string.h> using namespace std; char code[669][10002][70] = {0}; void Move_Str(char *Old) // 将字符串向前移动,每次判断的是队列的最前面的那一个
{
{
int i = 0;
char temp[70] = {0};
while((*(Old+i)) != ' ' && (*(Old+i)) != 0)
{
i++;
}
memcpy(temp, Old+i+1, 70);
memcpy(Old, temp, 70);
return;
} int change_num(char *start) // 将字符串中的那一段变成数字,一开始就是错在这里,没有话考虑到数字很大
{
int num_temp = 0, i = 0;
char str_temp[10] = {0};
while(*(start+i) != ' ' && *(start+i) != 0)
{
str_temp[i] = *(start+i);
i++;
}
str_temp[i] = 0;
num_temp = atoi(str_temp);
return num_temp;
} int main()
{
int T = 0, n = 0;
cin >> T; cin >> n;
getchar();
int i = 0, j = 0, flag = 0, temp_num = 0, unlock = 0;
int Looked[10002] = {0}, k = 0;
char str_temp[10] = {0};
for(i = 0; i< T; i++)
{
for(j = 0; j< n; j++)
{
gets(code[i][j]);
//cout << code[i][j] << endl;
}
}
for(i = 0; i<T; i++)
{
while(1)
{
flag = 0; unlock = 0;
for(j = 0; j< n; j++)
{
Looked[j] = 0; // 将 Looked数组初始化
if(code[i][j][0] != 0)
flag = 1;
}
if(flag == 0)
{
cout << 0 << endl;
break;
// 表示全部都完成了,也就是不会发生死锁
}
// 判断是否是死锁啊
for(j = 0; j< n; j++)
{
if(Looked[j] == 1)
continue;
if(code[i][j][0] == 'R')
{
temp_num = change_num(code[i][j]+1); if(code[i][temp_num][0] == 'S' && ((change_num(code[i][temp_num]+1)) == j))
{
Move_Str(code[i][j]);
Move_Str(code[i][temp_num]);
unlock = 1;
Looked[j] = 1;
Looked[temp_num] = 1;
// 这样是不会死锁的
}
}
else
{
temp_num = change_num(code[i][j]+1);
if(code[i][temp_num][0] == 'R' && ((change_num(code[i][temp_num]+1)) == j))
{
Move_Str(code[i][j]);
Move_Str(code[i][temp_num]);
unlock = 1;
Looked[j] = 1;
Looked[temp_num] = 1;
// 这样是不会死锁的
}
}
}
if(unlock == 0)
{
cout << 1 << endl;
break;
// 表示死锁了
}
}
}
return 0;
}

CCF认证 201903-4消息传递接口的更多相关文章

  1. CCF认证历年试题

    CCF认证历年试题 不加索引整理会死星人orz 第一题: CCF201712-1 最小差值(100分) CCF201709-1 打酱油(100分) CCF201703-1 分蛋糕(100分) CCF2 ...

  2. 小明种苹果(续)第十七次CCF认证

    小明种苹果(续)第十七次CCF认证 题目 原题链接 ](http://118.190.20.162/view.page?gpid=T93) 很高心,在现在CCF CSP可以下载自己当时的答卷了,也就是 ...

  3. CCF 消息传递接口 (队列) 201903-4 (100分)

    [题目描述] 老师给了 T 份 MPI 的样例代码,每份代码都实现了 n 个进程通信.这些进程标号 从 0 到 n − 1,每个进程会顺序执行自己的收发指令,如:“S x”,“R x”.“S x”表示 ...

  4. CCF认证(1)

    #include <iostream> #include <windows.h> using namespace std; typedef struct letter{ int ...

  5. CCF 认证4

    题意:求强联通分量 Tarjan算法 #include<iostream> #include<stdio.h> #include<stdlib.h> #includ ...

  6. CCF 认证

    题意:字符串替换 string+map的应用 #include<iostream> #include<stdio.h> #include<stdlib.h> #in ...

  7. CCF认证考试——折点计数

    描述:简单题 #include<iostream> using namespace std; int main() { ], n, count = ; cin >> n; ; ...

  8. CCF认证之——相反数

    这道题目非常简单! #include<iostream> using namespace std; int main() { ],n,count=; cin >> n; ; i ...

  9. ccf认证 201709-4 通信网络 java实现

    试题编号:                                                               201709-4 试题名称: 通信网络 时间限制: 1.0s 内 ...

随机推荐

  1. Beego 学习笔记9:Boostrap使用介绍

    BootStrap布局 1>     下载地址: http://v3.bootcss.com/getting-started/#download 根据自己的需要,下载不同的版本.我这里使用的是1 ...

  2. vs2017 添加 mysql EF实体数据模型闪退

    1.查看vs2017安装路径找到Mysql.Data.dll版本号与MySQL Connector Net版本是否一致 历史版本下载地址 http://mysql.inspire.net.nz/Dow ...

  3. ES6 笔记汇总

    ES6 笔记汇总 二.ES6基础-let和const命令 三.变量的解构赋值 四.字符串的拓展 五.正则表达式的拓展 ...将会持续更新,敬请期待

  4. 使 WIN 10进入休眠、睡眠、关机的命令

    1.用命令控制定时关机,重启,休眠等 休眠:rundll32.exe powrProf.dll,SetSuspendState 休眠:shutdown -h 睡眠:rundll32.exe powrp ...

  5. pycharm 里运行 django 工程 You must either define the environment variable DJANGO_SETTINGS_MODULE 错误

    pycharm 里运行 django 工程出现错误(在命令行直接运行ok): django.core.exceptions.ImproperlyConfigured: Requested settin ...

  6. Mac 设置redis开机启动

    1.创建一个plist文件 首先我们需要在/Library/LaunchDaemons目录下创建一个plist文件,使用如下命令: 复制代码代码如下: sudo vim /Library/Launch ...

  7. ARM架构体系

    架构 处理器家族 ARMv1 ARM1 ARMv2 ARM2.ARM3 ARMv3 ARM6, ARM7 ARMv4 StrongARM.ARM7TDMI.ARM9TDMI ARMv5 ARM7EJ. ...

  8. 洛谷 P1522 牛的旅行 Cow Tours

    题目链接:https://www.luogu.org/problem/P1522 思路:编号,然后跑floyd,这是很清楚的.然后记录每个点在这个联通块中的最远距离. 然后分连通块,枚举两个点(不属于 ...

  9. python应用-打印各种形状图

    row = int(input('请输入行数: ')) for row in range(1,row): for col in range (1,row+1): print( (col),end='' ...

  10. PHP 验证Email的函数

    <?php   function validateEmail($email) {    $isValid = true;    $atIndex = strrpos($email, " ...