消息传递口

201903-4

本题主要是利用队列进行模拟,因为一开始我没有注意到要按照顺序,所以一开始的解法错误。

#include<iostream>
#include<algorithm>
#include<string>
#include<cstring>
#include<cstdio>
#include<queue>
#include<sstream>
using namespace std;
const int maxn=10004;
int t,n;
struct node{
int flag;//flag=0表示s,flag=1表示r
int to;
node(string s){
char c=s[0];
if(c=='S')
flag=0;
else if(c=='R')
flag=1;
int ans=0;
for(int i=1;i<s.length();i++){
ans=ans*10+s[i]-'0';
}
to=ans%n;
}
node(){}
};
int main(){
// ios::sync_with_stdio(false);
// cin.tie(0);
cin>>t>>n;
getchar();//------------------------------------这个很重要
while(t--){
queue<node> que[maxn];
stringstream gs;
for(int i=0;i<n;i++){
string s;
getline(cin,s);
gs<<s;
while(gs>>s){
//cout<<s<<endl;3 2
que[i].push(node(s));
}
gs.clear();
}
while(true){
bool flag=false;
for(int i=0;i<n;i++){
if(que[i].empty())
continue;
node t=que[i].front();
int j=t.to;
//cout<<j<<endl;
if(que[j].empty())//只要一个有匹配而另一个已经空了,就退出,这时候答案就是1死锁
break;
node t1=que[j].front();
int j1=t1.to;
//cout<<j1<<endl;
if(j1!=i)
continue;
if(t1.flag+t.flag!=1)
continue;
//cout<<que[i].front().flag<<que[j].front().flag<<endl;
que[i].pop();
que[j].pop();
flag=true;
i--;
//cout<<"yes"<<endl;
}
if(!flag)
break;
}
bool flag=true;
for(int i=0;i<n;i++){
if(!que[i].empty()){
flag=false;
break;
}
}
if(flag){
//puts("0");
cout<<0<<endl;
}else
{
//puts("1");
cout<<1<<endl;
}
gs.str("");
}
//system("pause");
return 0;
}

CCF(消息传递口:80分):字符串相关+队列的更多相关文章

  1. url映射 ccf (Java正则表达式80分解法)

    问题描述 试题编号: 201803-3 试题名称: URL映射 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述 URL 映射是诸如 Django.Ruby on Rails 等 ...

  2. 【Todo】字符串相关的各种算法,以及用到的各种数据结构,包括前缀树后缀树等各种树

    另开一文分析字符串相关的各种算法,以及用到的各种数据结构,包括前缀树后缀树等各种树. 先来一个汇总, 算法: 本文中提到的字符串匹配算法有:KMP, BM, Horspool, Sunday, BF, ...

  3. PHP基础系列(一) PHP字符串相关的函数分类整理

    PHP提供了非常丰富的自带函数,有人说PHP是一个大的函数库,在某种程度上我是非常认同这种观点的,这个也是PHP非常容易上手的原因之一.在使用PHP编程的时候,需要实现某一功能的时候,如果说php自带 ...

  4. python字符串、字符串处理函数及字符串相关操作

    python字符串.字符串处理函数及字符串相关操作 字符串介绍 python字符串表示 Python除处理数字外还可以处理字符串,字符串用单撇号或双撇号包裹: >>> 'spam e ...

  5. java常用类详细介绍及总结:字符串相关类、日期时间API、比较器接口、System、Math、BigInteger与BigDecimal

    一.字符串相关的类 1.String及常用方法 1.1 String的特性 String:字符串,使用一对""引起来表示. String声明为final的,不可被继承 String ...

  6. 常用linux 命令 -字符串相关

    参考网络文章,个人工作总结 题记:一般对字符串的操作有以下几种:求长度,截取字符串,拼接字符串,找字符串中某个字符的索引 1 expr 命令 1.1 定义 man 手册 Print the value ...

  7. [关于SQL]查询成绩都大于80分的学生

    1.用一条SQL语句 查询出每门课都大于80分的学生姓名name kecheng fenshu张三 语文 81张三 数学 75李四 语文 76李四 数学 90王五 语文 81王五 数学 100王五 英 ...

  8. python中跟字符串相关的一些操作

    公司让用python自动生成代码,以前没看过python.所以匆匆的看了两天python就连猜带蒙就上马开干了..因此好多操作可能看的时候看懂了,用的时候知道有这么个东西,具体用法就忘记了..用到了就 ...

  9. 用一条SQL语句查出每门课都大于80分的学生的姓名

    用一条SQL语句查出每门课都大于80分的学生的姓名,数据表结构如下: 建表SQL如下: ; -- ---------------------------- -- Table structure for ...

随机推荐

  1. B. Modular Equations

    Last week, Hamed learned about a new type of equations in his math class called Modular Equations. L ...

  2. 01、mysql安装配置

    1.下载mysql软件安装包 MySQL版本:5.7.17 mysql下载地址:http://rj.baidu.com/soft/detail/12585.html?ald 2.配置mysql数据库与 ...

  3. HDU - 4722 Good Numbers 【找规律 or 数位dp模板】

    If we sum up every digit of a number and the result can be exactly divided by 10, we say this number ...

  4. 数仓增量更新hive实现

    注:参考文末文章,加上自己的理解. 1.增量更新 有一个 base_table 表存放的是 12 月 15 日之前的所有数据,当 12 月 16 日的数据产生后,生成了一个 incremental_t ...

  5. 快速搞懂.NET 5/.NET Core应用程序的发布部署

    .NET Framework时代,.NET 应用程序大多直接部署运行在Windows服务器上,当然也可以通过Mono部署运行在Linux上.无论部署exe,还是IIS站点.或是Windows Serv ...

  6. auto switch HTTP protocol Chrome Extension

    auto switch HTTP protocol Chrome Extension HTTPS auto switch to HTTP VPN https://chrome.google.com/w ...

  7. 一文搞懂 js 中的各种 for 循环的不同之处

    一文搞懂 js 中的各种 for 循环的不同之处 See the Pen for...in vs for...of by xgqfrms (@xgqfrms) on CodePen. for &quo ...

  8. React & react-native & vue & cli & environment information & report bugs

    React & react-native & vue & cli & environment information & report bugs cli che ...

  9. css & auto height & overflow: hidden;

    css & auto height & overflow: hidden; {overflow: hidden; height: 100%;} is the panacea! {溢出: ...

  10. cURL all in one

    cURL all in one convert http request to curl online https://curlbuilder.com/ https://cdn.xgqfrms.xyz ...