CodeForces

题目连接:http://codeforces.com/problemset/problem/589/A

题目大意:给你n个字符串,请你将它分类并输出。其中不分字母大小写(即‘A’='a'),当字符串尾缀为@bmail.com时,则@符号前面的字符串如果有‘.’则消掉,如果有'+',则‘+’字符及之后到@之前的字符无效。看样例就明白了。

map知识点:map里面存的就是pair类型,其定义方式为map<第一个数据类型,第二个数据类型> name,第一个数据类型为map的数据,第二个数据类型为map数据的值,故压入map的一个简单方式可以这样:map[第一个数据类型数据]=第二个数据类型数据。map存储数据是有序的,故能快速找到map里面有没有存第一个数据,其寻找方式为name.find(第一个数据)==name.end();这个意思是如果没找到,find()便找到map的最后,表达式真值为1,表示未找到第一个数据。

这题的ac代码:

 1 #include<iostream>
 2 #include<cstring>
 3 #include<vector>
 4 #include<cstdio>
 5 #include<map>
 6 using namespace std;
 7 char str[20005][105],str1[20005][105],per[]="@bmail.com",check[15];
 8 int main()
 9 {
10     int n;
11     while(cin>>n)
12     {
13         int count=0;
14         getchar();
15         vector<int> vec[20005];
16         map<string,int> amap;
17         for(int i=0;i<n;i++)
18         {
19             scanf("%s",str[i]);
20             int len=strlen(str[i]);
21             for(int j=0;j<len;j++)
22             {
23                 str1[i][j]=str[i][j];
24                 if(str[i][j]<='Z'&&str[i][j]>='A')
25                 str1[i][j]-=('A'-'a');
26             }
27             if(len<10)
28             check[0]='