CCF(消息传递口:80分):字符串相关+队列
消息传递口
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分):字符串相关+队列的更多相关文章
- url映射 ccf (Java正则表达式80分解法)
问题描述 试题编号: 201803-3 试题名称: URL映射 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述 URL 映射是诸如 Django.Ruby on Rails 等 ...
- 【Todo】字符串相关的各种算法,以及用到的各种数据结构,包括前缀树后缀树等各种树
另开一文分析字符串相关的各种算法,以及用到的各种数据结构,包括前缀树后缀树等各种树. 先来一个汇总, 算法: 本文中提到的字符串匹配算法有:KMP, BM, Horspool, Sunday, BF, ...
- PHP基础系列(一) PHP字符串相关的函数分类整理
PHP提供了非常丰富的自带函数,有人说PHP是一个大的函数库,在某种程度上我是非常认同这种观点的,这个也是PHP非常容易上手的原因之一.在使用PHP编程的时候,需要实现某一功能的时候,如果说php自带 ...
- python字符串、字符串处理函数及字符串相关操作
python字符串.字符串处理函数及字符串相关操作 字符串介绍 python字符串表示 Python除处理数字外还可以处理字符串,字符串用单撇号或双撇号包裹: >>> 'spam e ...
- java常用类详细介绍及总结:字符串相关类、日期时间API、比较器接口、System、Math、BigInteger与BigDecimal
一.字符串相关的类 1.String及常用方法 1.1 String的特性 String:字符串,使用一对""引起来表示. String声明为final的,不可被继承 String ...
- 常用linux 命令 -字符串相关
参考网络文章,个人工作总结 题记:一般对字符串的操作有以下几种:求长度,截取字符串,拼接字符串,找字符串中某个字符的索引 1 expr 命令 1.1 定义 man 手册 Print the value ...
- [关于SQL]查询成绩都大于80分的学生
1.用一条SQL语句 查询出每门课都大于80分的学生姓名name kecheng fenshu张三 语文 81张三 数学 75李四 语文 76李四 数学 90王五 语文 81王五 数学 100王五 英 ...
- python中跟字符串相关的一些操作
公司让用python自动生成代码,以前没看过python.所以匆匆的看了两天python就连猜带蒙就上马开干了..因此好多操作可能看的时候看懂了,用的时候知道有这么个东西,具体用法就忘记了..用到了就 ...
- 用一条SQL语句查出每门课都大于80分的学生的姓名
用一条SQL语句查出每门课都大于80分的学生的姓名,数据表结构如下: 建表SQL如下: ; -- ---------------------------- -- Table structure for ...
随机推荐
- The Balance HDU - 1709 母函数(板子变化)
题意: 现在你被要求用天平和一些砝码来量一剂药.当然,这并不总是可以做到的.所以你应该找出那些不能从范围[1,S]中测量出来的品质.S是所有重量的总质量. 输入一个n,后面有n个数,表示这n个物品的质 ...
- NCD 2019 M. NCD Salary
题意 :给你两个指数类型的数\(A^m\)和\(B^n\),比较他们的大小.保证底数和指数中最多只有一个为0. 题解 :题目数据非常大,肯定不能直接比较.由换底公式和\(Log\)函数的性质我们知道: ...
- Codeforces Round #479 (Div. 3) D. Divide by three, multiply by two (DFS)
题意:给你一个长度为\(n\)的序列\(a\).对它重新排列,使得\(a_{i+1}=a_{i}/3\)或\(a_{i+1}=2*a_{i}\).输出重新排列后的序列. 题解:经典DFS,遍历这个序列 ...
- sql-libs(6) 双引号的报错注入
payload:http://192.168.48.130/sqli-laaess-6/?id=1" and updatexml(1,concat(0x7e,(SELECT schema_n ...
- 008.NET5_IIS安装教程
控制面板->程序->启动或关闭Windows功能
- Sentry 高级使用教程
Sentry 高级使用教程 Sentry versions https://github.com/getsentry/sentry-docs https://github.com/getsentry/ ...
- how to updating Node.js and npm
how to updating Node.js and npm 1 Installing Node.js and updating npm How do I update Node.js ? Not ...
- HTML5 Canvas in Action
HTML5 Canvas in Action canvas 图片处理 视频编辑工具 xgqfrms 2012-2020 www.cnblogs.com 发布文章使用:只允许注册用户才可以访问!
- Typescript All In One
Typescript All In One TypeScript 3.5 is now available. https://www.typescriptlang.org/#download-link ...
- taro alipay
taro alipay 开发指南 https://nervjs.github.io/taro/docs/GETTING-STARTED.html#支付宝小程序 { "name": ...