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(纯字符串模拟)相关推荐

  1. [P1580] yyy loves Easter_Egg I

    Link: P1580 传送门 Solution: 拿来练练字符串的读入: 1.$gets()$相当于$c++$中的$getline()$,但返回值为指针!(无数据时为NULL) (都读入换行符,并将 ...

  2. 技术流:纯代码模拟登录耐克官网思路分享

    前情提要 起源 在码市上看到了一个价值 1000 RMB 的项目:耐克官网模拟登录,唯一要求是纯代码模拟登录. 原本觉得不会有多难,抱着试一试的想法搞了一天,没想到的是,真的是刷新了我对网站 Cook ...

  3. CF5A Chat Server's Outgoing Traffic(字符串模拟,find函数的应用)难度⭐

    题意翻译 Polycarp正在开发一个名为"Polychat"的新项目.按照IT的现代倾向,他决定,这个项目也应该包含聊天.为了实现这一目标,Polycarp在笔记本电脑前花费了几 ...

  4. 剑指offer:汇编语言中有一种移位指令叫做循环左移(ROL),现在有个简单的任务,就是用字符串模拟这个指令的运算结果。对于一个给定的字符序列S,请你把其循环左移K位后的序列输出。

    汇编语言中有一种移位指令叫做循环左移(ROL),现在有个简单的任务,就是用字符串模拟这个指令的运算结果.对于一个给定的字符序列S,请你把其循环左移K位后的序列输出.例如,字符序列S="abc ...

  5. 「洛谷P2397」 yyy loves Maths VI (mode) 解题报告

    P2397 yyy loves Maths VI (mode) 题目背景 自动上次redbag用加法好好的刁难过了yyy同学以后,yyy十分愤怒.他还击给了redbag一题,但是这题他惊讶的发现自己居 ...

  6. 洛谷——P2393 yyy loves Maths II

    P2393 yyy loves Maths II 题目背景 上次蒟蒻 redbag 可把 yyy 气坏了,yyy 说他只是小学生,蒟蒻 redbag 这次不坑他了. 题目描述 redbag 给了 yy ...

  7. P2394 yyy loves Chemistry I

    P2394 yyy loves Chemistry I # yyy loves Chemistry I ## 题目背景 因为会吃回车,所以放到题目描述里了喵~ ## 题目描述 [故事背景] 从前,有个 ...

  8. P2393 yyy loves Maths II

    P2393 yyy loves Maths II # yyy loves Maths II ## 题目背景 上次蒟蒻 redbag 可把 yyy 气坏了,yyy 说他只是小学生,蒟蒻 redbag 这 ...

  9. python编程解数学方程(纯字符串格式)

    用Python编程来解数学方程(纯字符串格式),没想到出人意料的简单. 我们的目标是从字符串直接求解,而不是输入参数. 例如: 一次方程:3x+5=0 二次方程:x^2+2x+1=0 方程组: 3x+ ...

最新文章

  1. 计算机控制直流电机闭环调速实验,最小拍控制系统及直流电机闭环调速控制系统设计和实现实验报告...
  2. [Spring5]IOC容器_Bean管理XML方式_注入集合类型属性
  3. 20140418--第1讲.开山篇
  4. 神奇 | 神奇,原来 Linux 终端下还有这两种下载文件方式
  5. vfp 界面_VFP之老树新花
  6. [Ubuntu] 查看内核和版本号
  7. nodejs爬虫基础(二)
  8. QLineEdit使用正则表达式小剖析
  9. GoJS图表组件简介
  10. Selenium学习笔记||三、BeautifulSoup
  11. VTK读取rawdata
  12. java动态数组输入_java中如何使用动态数组?代码示例
  13. 现代信息检索——基本概念
  14. 零成本赚钱小项目,轻松操作,完整版笔记分享给你
  15. matlab按图像边缘抠图_有哪些高效的抠图方法?
  16. 你看到的就是真实的吗?
  17. 对开发初步认识和体验
  18. 就自拍这回事(文/@最牛傻蛋)
  19. SIMPLIS仿真软件2.2-SIMPLIS快速入门2
  20. Feature-Driven Robust Surgery Scheduling 搬运

热门文章

  1. theano 深度学习大全
  2. 机器学习基础(六十一)—— 范数及范数的微分
  3. C++ 进阶——object slicing 与虚函数与dynamic_cast
  4. vs2012 使用mysql_vs2012连接mysql
  5. set python_Python之set的用法(一)
  6. css怎么实现加载的圆圈_图像高清方案——响应式图像让图像加载又快又省
  7. python新手入门代码-介绍十个Python小案例,新手入门就在这里
  8. arcgis python 教程-按区域消除--arcgis python实例教程
  9. python自学要多久-python从入门到精通需要多久?你需要先明白这两个点
  10. 语音识别中的MFCC的提取原理和MATLAB实现