Description
小H是一个可爱的女孩,她特别喜欢看推特(tweeter)。有一天她得到了某位用户的一些推特消息,想从中提取出这个用户在这些消息中@了哪些人。但是这些消息太长了,她想请你来帮她完成这个任务。

每条消息中只会包含ASCII编码中的可见字符与空格。

推特中用户名的定义为一个长度大于0的字符串,且字符串中只包括数字0-9,英文字符a-z与A-Z,’-’与’_’。用户名区分大小写。

对@一个人的判定方式为:在消息中出现了”@username”,其中username为一个用户名,且为’@’后面所能匹配到最长的用户名。如”@TOM”,只能得到用户名TOM而不能得到用户名TO。同时’@’前面不能是一个合法的用户名字符,我们以此排除所有的邮箱信息。如”x@qq.com”我们不会提取出用户名,但”.@qq.com”我们要从中提取出”qq”。

Input
输入数据第一行为T,代表数据组数。(T<=5)

对于每组数据,第一行为n,代表推特消息数。接下来的n行中,每一行有一条长度小于140的推特消息。(n<=5)

Output
对于每组数据,第一行为k,代表n条消息中共@了多少个人(若同一个人被@了不止一次,则我们只记录一次)。接下来的k行中,每一行输出一个被@的用户名,k个用户名按照字典序排序。

Sample Input
2

5

@all, wish you have a nice contest~~~

Good Luck with you, @Contestant, @HUST!

Have Fun! :-) @All

Competition Topics By @HIT-CCPC

All Copyright Reserved @CCPC2018, @HIT-CCPC

4

HIT@CCPC

@HUST

@HIT-CCPC

@CCPC2018

Sample Output
6

All

CCPC2018

Contestant

HIT-CCPC

HUST

all

3

CCPC2018

HIT-CCPC

HUST

一个简单的模拟题,如果运气不好代码哪里没注意或者少考虑了情况修bug就会修死人的。。。运气还行当时一发就过了。主要就是查找字符串中的@,然后对@前后的情况进行一个判断,因为题目中说明了@前必须不能是合法字符,此处判断一下,特判一下@在字符串首位的时候,还有就是@后一位的位置要判断,是否合法,才能判断此处是不是一个应该录入的名字。
然后一些特殊情况,连续 的几个@@@@@以及@前后都是空格,当然这一并考虑到@左右是否是合法字符里的情况了。基本上就是这样,听说很多大佬被卡了很久。。。。

此处去重用的map标记,记录字符串用的vector存储。

#include<stdio.h>
#include<string.h>
#include<vector>
#include<map>
#include<algorithm>
#include<iostream>
#include<string>
#define LL long long
using namespace std;
const LL MOD=1000000007;
char a[150];
bool judge(int pos)
{if((a[pos]>='0'&&a[pos]<='9')||(a[pos]>='A'&&a[pos]<='Z')||(a[pos]>='a'&&a[pos]<='z')||a[pos]=='-'||a[pos]=='_')return true;return false;
}
int main()
{int t,n;vector<string>ans;map<string,bool>vis;scanf("%d",&t);while(t--){ans.clear();vis.clear();scanf("%d",&n);getchar();while(n--){gets(a);
//            printf("%d......%s\n",n,a);int len=strlen(a);for(int i=0; i<len; i++){if(a[i]=='@'&&judge(i+1)){if(i==0){i++;string tmp;tmp.clear();while(judge(i)) tmp+=a[i++];
//                        cout<<tmp<<endl;if(!vis[tmp]){vis[tmp]=true;ans.push_back(tmp);}}else if(!judge(i-1)){i++;string tmp;tmp.clear();while(judge(i)) tmp+=a[i++];if(!vis[tmp]){vis[tmp]=true;ans.push_back(tmp);}}}}}sort(ans.begin(),ans.end());printf("%d\n",ans.size());for(int i=0; i<ans.size(); i++) cout<<ans[i]<<endl;}
}

科林明伦杯哈尔滨理工大学第八届程序设计竞赛——Hrbust-2378 小H的问题(模拟)相关推荐

  1. 【数论想法题】小C的问题 @科林明伦杯哈尔滨理工大学第八届程序设计竞赛...

    Time Limit: 1000 MS Memory Limit: 256000 K Description 小C是一个可爱的女孩,她特别喜欢世界上最稳定的图形:三角形.有一天她得到了n根木棍,她把这 ...

  2. B-GT‘s Dream “科林明伦杯“哈尔滨理工大学第八届程序设计竞赛

    题目链接 GT's Dream 题解 思路 两个操作,对于第一个操作--合并,需要使用并查集:对于第二个操作--查询,使用树状数组. 我们使用树状数组维护一个前缀和.数组下标表示人数,元素表示在树状数 ...

  3. 科林明伦杯”哈尔滨理工大学第十届程序设计竞赛B(减成1)

    科林明伦杯"哈尔滨理工大学第十届程序设计竞赛 存在n个数,每次操作可以任选一个区间使得区间内的所有数字减一.问最少多少次操作,可以让所有数都变成1. 数据保证一定有解. 输入描述: 输入t, ...

  4. “科林明伦杯”哈尔滨理工大学第十届程序设计竞赛(同步赛) 题解

    "科林明伦杯"哈尔滨理工大学第十届程序设计竞赛(同步赛) 题解 萌新又来写题解啦 原题链接 B 减成一 题意:存在n个数,每次操作可以任选一个区间使得区间内的所有数字减一.问最少多 ...

  5. “科林明伦杯”哈尔滨理工大学第十届程序设计竞赛 E 赛马 python

    "科林明伦杯"哈尔滨理工大学第十届程序设计竞赛 E 赛马 python E 好家伙 田忌赛马真就 匹配就不解释了 思路,主要咱不止一匹马 所以就最好的比 对方比这个数小的即可 所以 ...

  6. 科林明伦杯哈尔滨理工大学第六届程序设计团队赛(12.10)

    "科林明伦杯"哈尔滨理工大学第六届程序设计团队赛 水题已去除.. B题  Time 原题链接:http://acm.hrbust.edu.cn/index.php?m=Proble ...

  7. “科林明伦杯”哈尔滨理工大学第十届程序设计竞赛(同步赛)---全题目+题解

    文章目录 A.点对最大值 B.减成一 C.面积 D.扔硬币 E.赛马 F.三角形 G.养花 H.直线 I.字典序 J.最大值 A.点对最大值 链接:https://ac.nowcoder.com/ac ...

  8. “科林明伦杯”哈尔滨理工大学第十届程序设计竞赛(同步赛) F

    F 三角形 链接:https://ac.nowcoder.com/acm/contest/5758/F 来源:牛客网 小明有一根长度为a的木棒,现在小明想将木棒分为多段(每段木棒长度必须为整数), 使 ...

  9. 科林明伦杯 哈尔滨理工大学第十届程序设计竞赛 (补)

    B减成一 利用差分数组,把前后差为正的数都加起来,这里a[0]要设置为1. #include <iostream> #define ll long longusing namespace ...

最新文章

  1. 什么是生成模型和GAN?一文体验计算机视觉的魔力
  2. LAMP:用yum安装
  3. Golang的模板与渲染
  4. 从司法领域看阿里云产业AI策略:生态联盟,技术赋能
  5. PCTFREEITLCONSISTANT READ
  6. 如何在计算机中快速新建TXT文本文档
  7. Linux相关配置VMware安装
  8. 谷歌浏览器安装插件的方法步骤
  9. 基于51单片机+SG90舵机
  10. VMware Workstation 15 Player 共享文件夹制作
  11. 论文解读:FASPell: A Fast, Adaptable, Simple, Powerful Chinese Spell Checker Based On DAE-Decoder Paradig
  12. cs1.6 服务器制作,反恐精英CS1.6服务器建设简明手册
  13. iOS 上的FlexBox布局
  14. 团组织关系的转接流程
  15. 计算机故障声音,不同的电脑故障声音分别是什么意思【详解】
  16. 任务栏信息栏中图标闪动
  17. ioca0中断 pic单片机_PIC单片机
  18. Happy Father's Day 告诉父亲你爱他
  19. Mysql学习之优化篇
  20. 智能家居市场中zigbee通信技术与RF315/433通信技术的区别

热门文章

  1. 小程序-demo:小程序示例-page/api
  2. TestBird成为全球最大手游测试平台
  3. 2022年低压电工复训题库及在线模拟考试
  4. 泉州地区的“会子”是一种怎样的制度?
  5. 微信小程序之获取百度天气
  6. 标签设计打印软件:LabelJoy 6.23.0 Crack
  7. 怎样将pdf格式转换成jpg
  8. 运动的“点”与“线”,竟然能产生错觉???
  9. 批处理登陆邮箱代码分析
  10. python电子书在线阅读-Python编程快速上手 让繁琐工作自动化