点此看题面

大致题意: 略。(一道模拟题,自己去看题面吧)

几个字符数组函数

纯粹是一道字符串处理题,就当是学了一下各种与字符数组相关的函数吧!

\(gets()\):这个是比较常用的函数,就是读入一行的字符。

\(strlen()\):求出字符数组的长度。

\(sscanf()\):从一个字符数组中读入,用法与\(scanf\)类似。

\(strstr()\):在一个字符数组中找到另一个字符数组第一次出现的位置,然后返回这个位置及其之后的字符。

\(strcmp()\):比较两个字符数组是否有差异。

\(count()\):后来才知道还有一个这么神奇的函数,统计一个字符在字符数组中出现的次数。我做的时候自己手写了一个。

了解了这些函数,其实这道题就比较简单了。

大致思路

先读入第一行,用一个字符数组\(target\)存下第一个被\(@\)的人,并开一个变量\(cnt\)记录当前行数。

接下来,每次读入一个字符数组,如果读完了,就输出"好队形"

然后找出当前说话的人的名字,比较其与\(target\),若相同则输出"炸成功"

接下来是判断这句话中存在的\(@\)个数是否为\(1\),不为\(1\)则输出"炸失败"

然后判断被\(@\)的人是否为\(target\),若不是,也输出"炸失败"

具体实现详见代码。

代码

  1. #include<bits/stdc++.h>
  2. #define max(x,y) ((x)>(y)?(x):(y))
  3. #define min(x,y) ((x)<(y)?(x):(y))
  4. #define Gmax(x,y) (x<(y)&&(x=(y)))
  5. #define Gmin(x,y) (x>(y)&&(x=(y)))
  6. #define abs(x) ((x)<0?-(x):(x))
  7. #define swap(x,y) (x^=y^=x^=y)
  8. #define uint unsigned int
  9. #define LL long long
  10. #define ull unsigned long long
  11. #define INF 1000000000
  12. #define N 1000
  13. #define hl_AK_NOI true
  14. #define GetAt(s,t) (sscanf(strstr(s,"@"),"@yyy loves %s",t))//找到被@的对象
  15. using namespace std;
  16. char now[N+5],At[N+5],cur[N+5],target[N+5];
  17. inline bool check(char *s,int len)//判断字符数组中含@个数是否为1,其实可以用count()函数替代
  18. {
  19. register int i,tot=0;
  20. for(i=0;i<len;++i) if(!(s[i]^'@')&&tot++) return false;//如果出现次数大于1,返回false
  21. return tot;//如果出现次数为1,返回true;如果出现次数为0,返回false
  22. }
  23. int main()
  24. {
  25. register int cnt=1,len;
  26. gets(now),GetAt(now,target);//用target存下第一个被@的人
  27. while(hl_AK_NOI)
  28. {
  29. if(++cnt,gets(now),len=strlen(now),len<2) return printf("Unsuccessful @yyy loves %s attempt\n%d\nGood Queue Shape",target,cnt-1),0;//判断是否读完
  30. if(sscanf(now,"yyy loves %s",cur),!strcmp(cur,target)) return printf("Successful @yyy loves %s attempt",target),0;//比较当前说话的人与target
  31. if(!check(now,len)) return printf("Unsuccessful @yyy loves %s attempt\n%d\nyyy loves %s",target,cnt,cur),0;//判断这句话中存在的@个数是否为1
  32. if(GetAt(now,At),strcmp(At,target)) return printf("Unsuccessful @yyy loves %s attempt\n%d\nyyy loves %s",target,cnt,cur),0;//判断被@的人是否为target
  33. }
  34. return 0;
  35. }

【洛谷1580】yyy loves Easter_Egg I(字符串处理题)的更多相关文章

  1. [洛谷1580]yyy loves Easter_Egg I

    题目背景 Soha的出题效率着实让人大吃一惊.OI,数学,化学的题目都出好了,物理的题还没有一道.于是,Huntfire,absi2011,lanlan对soha进行轮番炸,准备炸到soha出来,不料 ...

  2. 洛谷 P1580 yyy loves Easter_Egg I

    洛谷 P1580 yyy loves Easter_Egg I 题解: 队列+字符串 #include <cstdio> #include <string> #include ...

  3. [洛谷P1580]yyy loves Easter_Egg I

    题目大意:很多人@一个人,如果那个人忍不住说话了,就轰炸成功,如果那个人没说话或者别的人没有@他或@很多个人,则轰炸失败.(具体见原题) 解题思路:字符串处理,好好用sscanf即可(细节见代码). ...

  4. [洛谷2397]yyy loves Maths VI

    题目背景 自动上次redbag用加法好好的刁难过了yyy同学以后,yyy十分愤怒.他还击给了redbag一题,但是这题他惊讶的发现自己居然也不会,所以只好找你 题目描述 他让redbag找众数他还特意 ...

  5. 洛谷P2397 yyy loves Maths VI (mode)

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

  6. 洛谷P2396 yyy loves Maths VII

    P2396 yyy loves Maths VII 题目背景 yyy对某些数字有着情有独钟的喜爱,他叫他们为幸运数字;然而他作死太多,所以把自己讨厌的数字成为"厄运数字" 题目描述 ...

  7. 洛谷——P2393 yyy loves Maths II

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

  8. [CF327E]Axis Walking([洛谷P2396]yyy loves Maths VII)

    题目大意:给一个长度为$n(1\leqslant n\leqslant24)$的序列$S$和$k(0\leqslant k\leqslant2)$个数. 求有多少种$S$的排列方式使得其任何一个前缀和 ...

  9. 洛谷 P2393 yyy loves Maths II

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

  10. 【题解】洛谷P2418 yyy loves OI IV

    感觉很是妙啊……这题数次误入歧途...最开始想的二维dp,单调队列优化:无果,卒.于是没忍住看了下标签:暴力枚举?搜索?于是开始想记忆化搜索.以为会有什么很强的剪枝之类的:30分,卒.最后终于回到正道 ...

随机推荐

  1. MongoDB的安装避坑(踩坑)

    下载 可以去官网下载:https://www.mongodb.com/download-center/community 安装 下载完了就可以使用安装包安装:我下载的mongodb版本是:v4.0.9 ...

  2. 自定义进度条PictureProgressBar——从开发到开源发布全过程

    自定义进度条PictureProgressBar——从开发到开源发布全过程 出处: 炎之铠邮箱:yanzhikai_yjk@qq.com 本文原创,转载请注明本出处! 本项目JCenter地址:htt ...

  3. Windows 在目录中搜索哪个文件中有指定字符串

    findstr /s /i "string" *.* 表示,当前目录以及子目录下的所有文件中查找"string"这个字符串. *.*表示所有类型的文件. /s ...

  4. 2018年12月30&31日

    小结:昨天由于做的题目比较少,所以就和今天写在一块了,昨天学习了差分约束和树上差分,当然树上差分是用线段树来维护的,今天重点整理了博客\(233\),然后做了几个题. 一. 完成的题目: 洛谷P327 ...

  5. javascript的模块发展

    谨以此文记录了解js模块的过程 随着ES6的出现,js模块已经成为正式的标准了.曾经为了解决js模块问题而发展起来的民间秘籍,requireJs(AMD).SeaJs(CMD).Node(Common ...

  6. MySQL不同数据库之间表的简单同步

    MySQL不同数据库之间表的简单同步,实用轻量级数据如下案列展示:例如我现在主库上面有users .tenants两张表需要同步到备库上面主库1.确认主库数据条数 select count(*) fr ...

  7. Python 简单的方法爬取b站dnf视频封面

    import urllib.request cnt=0 def instr(keystr): st=keystr.find('(')+1 strhtml=keystr[st:len(keystr)-1 ...

  8. linux tcpdump抓取HTTP包的详细解释

    tcpdump tcpdump是linux系统自带的抓包工具,主要通过命令行的方式,比较适合在线上服务器进行抓包操作,如果是windows或者ubuntu完全可 以选择一些图形化的工具,ubuntu比 ...

  9. Git 2016视频教程

    http://blog.csdn.net/biggbang/article/details/50830331

  10. 每次打开 excel2010 都要配置如何解决

    遇到这种情况有以下几种解决方法 1.修改原有office启动名称 打开"C:/Program Files/Common Files/Microsoft Shared/OFFICE14/Off ...