【洛谷1580】yyy loves Easter_Egg I(字符串处理题)
大致题意: 略。(一道模拟题,自己去看题面吧)
几个字符数组函数
纯粹是一道字符串处理题,就当是学了一下各种与字符数组相关的函数吧!
\(gets()\):这个是比较常用的函数,就是读入一行的字符。
\(strlen()\):求出字符数组的长度。
\(sscanf()\):从一个字符数组中读入,用法与\(scanf\)类似。
\(strstr()\):在一个字符数组中找到另一个字符数组第一次出现的位置,然后返回这个位置及其之后的字符。
\(strcmp()\):比较两个字符数组是否有差异。
\(count()\):后来才知道还有一个这么神奇的函数,统计一个字符在字符数组中出现的次数。我做的时候自己手写了一个。
了解了这些函数,其实这道题就比较简单了。
大致思路
先读入第一行,用一个字符数组\(target\)存下第一个被\(@\)的人,并开一个变量\(cnt\)记录当前行数。
接下来,每次读入一个字符数组,如果读完了,就输出"好队形"。
然后找出当前说话的人的名字,比较其与\(target\),若相同则输出"炸成功"。
接下来是判断这句话中存在的\(@\)个数是否为\(1\),不为\(1\)则输出"炸失败"。
然后判断被\(@\)的人是否为\(target\),若不是,也输出"炸失败"。
具体实现详见代码。
代码
#include<bits/stdc++.h>
#define max(x,y) ((x)>(y)?(x):(y))
#define min(x,y) ((x)<(y)?(x):(y))
#define Gmax(x,y) (x<(y)&&(x=(y)))
#define Gmin(x,y) (x>(y)&&(x=(y)))
#define abs(x) ((x)<0?-(x):(x))
#define swap(x,y) (x^=y^=x^=y)
#define uint unsigned int
#define LL long long
#define ull unsigned long long
#define INF 1000000000
#define N 1000
#define hl_AK_NOI true
#define GetAt(s,t) (sscanf(strstr(s,"@"),"@yyy loves %s",t))//找到被@的对象
using namespace std;
char now[N+5],At[N+5],cur[N+5],target[N+5];
inline bool check(char *s,int len)//判断字符数组中含@个数是否为1,其实可以用count()函数替代
{
register int i,tot=0;
for(i=0;i<len;++i) if(!(s[i]^'@')&&tot++) return false;//如果出现次数大于1,返回false
return tot;//如果出现次数为1,返回true;如果出现次数为0,返回false
}
int main()
{
register int cnt=1,len;
gets(now),GetAt(now,target);//用target存下第一个被@的人
while(hl_AK_NOI)
{
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;//判断是否读完
if(sscanf(now,"yyy loves %s",cur),!strcmp(cur,target)) return printf("Successful @yyy loves %s attempt",target),0;//比较当前说话的人与target
if(!check(now,len)) return printf("Unsuccessful @yyy loves %s attempt\n%d\nyyy loves %s",target,cnt,cur),0;//判断这句话中存在的@个数是否为1
if(GetAt(now,At),strcmp(At,target)) return printf("Unsuccessful @yyy loves %s attempt\n%d\nyyy loves %s",target,cnt,cur),0;//判断被@的人是否为target
}
return 0;
}
【洛谷1580】yyy loves Easter_Egg I(字符串处理题)的更多相关文章
- [洛谷1580]yyy loves Easter_Egg I
题目背景 Soha的出题效率着实让人大吃一惊.OI,数学,化学的题目都出好了,物理的题还没有一道.于是,Huntfire,absi2011,lanlan对soha进行轮番炸,准备炸到soha出来,不料 ...
- 洛谷 P1580 yyy loves Easter_Egg I
洛谷 P1580 yyy loves Easter_Egg I 题解: 队列+字符串 #include <cstdio> #include <string> #include ...
- [洛谷P1580]yyy loves Easter_Egg I
题目大意:很多人@一个人,如果那个人忍不住说话了,就轰炸成功,如果那个人没说话或者别的人没有@他或@很多个人,则轰炸失败.(具体见原题) 解题思路:字符串处理,好好用sscanf即可(细节见代码). ...
- [洛谷2397]yyy loves Maths VI
题目背景 自动上次redbag用加法好好的刁难过了yyy同学以后,yyy十分愤怒.他还击给了redbag一题,但是这题他惊讶的发现自己居然也不会,所以只好找你 题目描述 他让redbag找众数他还特意 ...
- 洛谷P2397 yyy loves Maths VI (mode)
P2397 yyy loves Maths VI (mode) 题目背景 自动上次redbag用加法好好的刁难过了yyy同学以后,yyy十分愤怒.他还击给了redbag一题,但是这题他惊讶的发现自己居 ...
- 洛谷P2396 yyy loves Maths VII
P2396 yyy loves Maths VII 题目背景 yyy对某些数字有着情有独钟的喜爱,他叫他们为幸运数字;然而他作死太多,所以把自己讨厌的数字成为"厄运数字" 题目描述 ...
- 洛谷——P2393 yyy loves Maths II
P2393 yyy loves Maths II 题目背景 上次蒟蒻redbag可把yyy气坏了,yyy说他只是小学生,蒟蒻redbag这次不坑他了. 题目描述 redbag给了yyy很多个数,要yy ...
- [CF327E]Axis Walking([洛谷P2396]yyy loves Maths VII)
题目大意:给一个长度为$n(1\leqslant n\leqslant24)$的序列$S$和$k(0\leqslant k\leqslant2)$个数. 求有多少种$S$的排列方式使得其任何一个前缀和 ...
- 洛谷 P2393 yyy loves Maths II
P2393 yyy loves Maths II 题目背景 上次蒟蒻redbag可把yyy气坏了,yyy说他只是小学生,蒟蒻redbag这次不坑他了. 题目描述 redbag给了yyy很多个数,要yy ...
- 【题解】洛谷P2418 yyy loves OI IV
感觉很是妙啊……这题数次误入歧途...最开始想的二维dp,单调队列优化:无果,卒.于是没忍住看了下标签:暴力枚举?搜索?于是开始想记忆化搜索.以为会有什么很强的剪枝之类的:30分,卒.最后终于回到正道 ...
随机推荐
- Codeforces 92C【二分】
意: 求最少需要几个s1串拼接存在子串s2 (1≤|s1|≤1e4,1≤|s2|≤1e6). 思路(感谢ZQC): 每个字母的出现位置存个vector. 假设你当前已经用了A串的前x个字符,现在想要匹 ...
- How to download a file with plus symbol(+) filename in IIS?
How to download a file with plus symbol(+) filename in IIS? Original post link:https://www.cnblogs.c ...
- 清北刷题冲刺 10-29 p.m
洗澡 /* 这个题不能单纯判断左括号和右括号的多少,而应该从左到右扫一遍,看应该如何配对 */ #include<iostream> #include<cstdio> #inc ...
- Maven的相关知识及使用
一.简介 maven: 是apache下的一个开源项目,是纯java开发,并且只是用来管理java项目的,Maven是跨平台的项目管理工具. 1.自动化构建和项目管理工具 Ant→Make→Maven ...
- 大话Spark(2)-Spark on Yarn运行模式
Spark On Yarn 有两种运行模式: Yarn - Cluster Yarn - Client 他们的主要区别是: Cluster: Spark的Driver在App Master主进程内运行 ...
- BZOJ 3673 可持久化并查集 by zky && BZOJ 3674 可持久化并查集加强版 可持久化线段树
既然有了可持久化数组,就有可持久化并查集.. 由于上课讲过说是只能按秩合并(但是我也不确定...),所以就先写了按秩合并,相当于是维护fa[]和rk[] getf就是在这棵树中找,直到找到一个点的fa ...
- 记录一个直接操作mediawiki数据库遇到的坑
我的mediawiki使用的是postgresql数据库,当你进入到mediawiki数据库时,运行sql select * from pg_tables; 你会发现mediawiki的数据表的sch ...
- SQLServer常见性能问题
1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引. 2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索 ...
- matlab 基本操作
导入excel 右键excel文件, import data, 选择column vector点击导入即可, 在右侧的workspace就可以看到添加的列变量了 在workspace中右键添加clas ...
- java中调用ElasticSearch中文分词ik没有起作用
问题描述: 项目中已经将'齐鲁壹点'加入到扩展词中,但是使用客户端调用的时候,高亮显示还是按照单个文字分词的: 解决方案: 1.创建Mapping使用的分词使用ik 2.查询使用QueryBuilde ...