蛋疼的英语
Time Limit : 3000/1000ms (Java/Other) Memory Limit : 65535/32768K (Java/Other)
Total Submission(s) : 255 Accepted Submission(s) : 25
Font: Times New Roman | Verdana | Georgia
Font Size: ← →
Problem Description
jxust_acm 队的同学都知道Xianbin5的英语特别差,因而他每次比赛都要队友来给他翻译题目,然而现在队友回家了,他为了提高英语,决定看一篇很长的英文文章,文章有N个单词(0<N<=50000),但是他的词汇量只有M个单词(0<M<=5000)。在看文章的过程中,如果遇到他不会的单词,那么他就会去查字典,查过的单词他会了,那么以后遇到就不用再查了。现在给出文章和Xianbin5已经掌握的单词。让求他最小要查字典的次数。
Input
含多组样例(小于5组),每组样例为:
首先给出N和M,用空格分开。
然后给出一行英文其中包含N个单词,每个单词由小写字母组成且长度小于20,单词之间用空格分开。
接下来M行分别是xianbin5会的单词(每个单词由小写字母组成且长度小于20,而且每个单词各不相同)。
首先给出N和M,用空格分开。
然后给出一行英文其中包含N个单词,每个单词由小写字母组成且长度小于20,单词之间用空格分开。
接下来M行分别是xianbin5会的单词(每个单词由小写字母组成且长度小于20,而且每个单词各不相同)。
Output
对于每组样例输出他最小要查词典的次数。
Sample Input
5 4 i love math and acm i love and math 8 1 can you find grandparents can you answers me me
Sample Output
1 5
这个题目完全的水过啊,知道<set>就可以了,恩,使用前应该先用clear清理一下,。
这也是我第一个真正用C++做出来的一道题目,值得纪念一下!!
代码:
#include <iostream> #include <set> #include <stdio.h> #include <string> using namespace std; set <string> h; int main() { int n,i,m; string s; while(scanf("%d%d%*c",&n,&m)!=EOF)//此处不知道用C++怎么写,只能弱弱的用c的stdio。h了。。。。。 { h.clear();//清理h for(i = 0; i < n; i++) { cin >> s; h.insert(s); } n=h.size(); for(i=0;i<m;i++) { cin >> s; if(h.find(s)!=h.end()) { if(n==0)n++; n--; } } cout<<n<<endl; } return 0; }