【Luogu1580】yyy loves Easter_Egg I(纯字符串模拟)
problem
- 保持队形(我们认为只要这一句内含有且恰好含有一次@,@的人和上一句话一样就算为队形)
- 若艾特的人与第一个人不同,就算队形被打破,油炸失败。若这个人在队形被打破之前出来吱声了,或者就是他打破队形了,就算(油)炸成功了。
- 若(油)炸成功,输出“Successful @某某某 attempt”,若队形被破坏第一行输出“Unsuccessful @某某某 attempt”,接下来一行输出队形第一次被破坏的行数,第三行输出第一次破坏队形的人的id。如果队形一直没被打破,就先输出“Unsuccessful @某某某 attempt”,再输出队形的长度,最后输出”Good Queue Shape”
- 总行数<50000, 每行消息长度<=1000, 文件<4MB
solution
纯字符串模拟,无话可说。
codes
#include<iostream>
#include<string>
using namespace std;int ans;//队形长度
//find name:找说话的人名字
string findname(string b){int w = b.find(":");return b.substr(0,w-1);
}
//find @:找@的第一个人
string findat(string b){if(b.find("@")==std::string::npos)return "abcd";int w = b.find("@");int ws = b.find("loves ",w); ws+=6;int ok = 0;if(b.find(" ",ws) == std::string::npos)b+=" ",ok=1;int wt = b.find(" ",ws);return "yyy loves "+b.substr(ws,wt-ws-ok);
}
//判断这个人@了几个人
int ats(string b){int sum = 0;for(int i = 0; i < b.size(); i++)if(b[i]=='@')sum++;return sum;
}int main(){string t; getline(cin,t); ans = 1;//找第一个被@的人,即被轰炸的人的名字string at = findat(t);while(getline(cin,t)){//空格字符串int ww=0;while(t[ww]==' ')ww++;if(ww==(t.size()-1))break;//破坏队形的人所在行数ans++;//找出当前说话的人的名字以及他@的人string x = findname(t), y = findat(t);//如果说话的人是被轰炸的人,说明轰炸成功,输出,程序结束if(x == at){cout<<"Successful @"<<at<<" attempt"<<endl;return 0;}//如果这个人@了一个不是被轰炸的人或者没有@人亦或是@了不止一个人,那么视为打破队列,输出,程序结束if(y!=at || ats(t)!=1){cout<<"Unsuccessful @"<<at<<" attempt"<<endl;cout<<ans<<endl<<x<<endl; return 0;}//如果是队形,那么长度+1}//如果成功到了while外面,说明轰炸失败,并且没人打破队列,输出cout<<"Unsuccessful @"<<at<<" attempt"<<endl;cout<<ans<<endl<<"Good Queue Shape"<<endl;return 0;
}
【Luogu1580】yyy loves Easter_Egg I(纯字符串模拟)相关推荐
- [P1580] yyy loves Easter_Egg I
Link: P1580 传送门 Solution: 拿来练练字符串的读入: 1.$gets()$相当于$c++$中的$getline()$,但返回值为指针!(无数据时为NULL) (都读入换行符,并将 ...
- 技术流:纯代码模拟登录耐克官网思路分享
前情提要 起源 在码市上看到了一个价值 1000 RMB 的项目:耐克官网模拟登录,唯一要求是纯代码模拟登录. 原本觉得不会有多难,抱着试一试的想法搞了一天,没想到的是,真的是刷新了我对网站 Cook ...
- CF5A Chat Server's Outgoing Traffic(字符串模拟,find函数的应用)难度⭐
题意翻译 Polycarp正在开发一个名为"Polychat"的新项目.按照IT的现代倾向,他决定,这个项目也应该包含聊天.为了实现这一目标,Polycarp在笔记本电脑前花费了几 ...
- 剑指offer:汇编语言中有一种移位指令叫做循环左移(ROL),现在有个简单的任务,就是用字符串模拟这个指令的运算结果。对于一个给定的字符序列S,请你把其循环左移K位后的序列输出。
汇编语言中有一种移位指令叫做循环左移(ROL),现在有个简单的任务,就是用字符串模拟这个指令的运算结果.对于一个给定的字符序列S,请你把其循环左移K位后的序列输出.例如,字符序列S="abc ...
- 「洛谷P2397」 yyy loves Maths VI (mode) 解题报告
P2397 yyy loves Maths VI (mode) 题目背景 自动上次redbag用加法好好的刁难过了yyy同学以后,yyy十分愤怒.他还击给了redbag一题,但是这题他惊讶的发现自己居 ...
- 洛谷——P2393 yyy loves Maths II
P2393 yyy loves Maths II 题目背景 上次蒟蒻 redbag 可把 yyy 气坏了,yyy 说他只是小学生,蒟蒻 redbag 这次不坑他了. 题目描述 redbag 给了 yy ...
- P2394 yyy loves Chemistry I
P2394 yyy loves Chemistry I # yyy loves Chemistry I ## 题目背景 因为会吃回车,所以放到题目描述里了喵~ ## 题目描述 [故事背景] 从前,有个 ...
- P2393 yyy loves Maths II
P2393 yyy loves Maths II # yyy loves Maths II ## 题目背景 上次蒟蒻 redbag 可把 yyy 气坏了,yyy 说他只是小学生,蒟蒻 redbag 这 ...
- python编程解数学方程(纯字符串格式)
用Python编程来解数学方程(纯字符串格式),没想到出人意料的简单. 我们的目标是从字符串直接求解,而不是输入参数. 例如: 一次方程:3x+5=0 二次方程:x^2+2x+1=0 方程组: 3x+ ...
最新文章
- 计算机控制直流电机闭环调速实验,最小拍控制系统及直流电机闭环调速控制系统设计和实现实验报告...
- [Spring5]IOC容器_Bean管理XML方式_注入集合类型属性
- 20140418--第1讲.开山篇
- 神奇 | 神奇,原来 Linux 终端下还有这两种下载文件方式
- vfp 界面_VFP之老树新花
- [Ubuntu] 查看内核和版本号
- nodejs爬虫基础(二)
- QLineEdit使用正则表达式小剖析
- GoJS图表组件简介
- Selenium学习笔记||三、BeautifulSoup
- VTK读取rawdata
- java动态数组输入_java中如何使用动态数组?代码示例
- 现代信息检索——基本概念
- 零成本赚钱小项目,轻松操作,完整版笔记分享给你
- matlab按图像边缘抠图_有哪些高效的抠图方法?
- 你看到的就是真实的吗?
- 对开发初步认识和体验
- 就自拍这回事(文/@最牛傻蛋)
- SIMPLIS仿真软件2.2-SIMPLIS快速入门2
- Feature-Driven Robust Surgery Scheduling 搬运
热门文章
- theano 深度学习大全
- 机器学习基础(六十一)—— 范数及范数的微分
- C++ 进阶——object slicing 与虚函数与dynamic_cast
- vs2012 使用mysql_vs2012连接mysql
- set python_Python之set的用法(一)
- css怎么实现加载的圆圈_图像高清方案——响应式图像让图像加载又快又省
- python新手入门代码-介绍十个Python小案例,新手入门就在这里
- arcgis python 教程-按区域消除--arcgis python实例教程
- python自学要多久-python从入门到精通需要多久?你需要先明白这两个点
- 语音识别中的MFCC的提取原理和MATLAB实现