BNU0803 - J MAP
纯是练习读题和字符串处理。题目写的公式和解释有点绕。多看两遍就好了。
字符串处理涉及两方面
第一个是istringstream,头文件#include<sstream>
可以读入一整行,再按照空格一个一个处理出来,存下来。比sscanf()好的地方是,无论中间有多少给个空格,都当一个处理。而sscanf()不能。
getline(cin,line); istringstream stream(line); while(stream>>str){ cout<<str<<endl; }
第二个就是map,头文件#include<map>
详细讲解:http://blog.csdn.net/juiceda/article/details/7568342
map<string,int> x[21000]; // map[int][string]=int; while(j<n){ getline(cin,line); istringstream stream(line); while(stream>>str){ x[j][str]=1; } p[j]=x[j].size(); j++; } //一行一行做处理,更新j
可以迅速的查找后面n行里出现的字符串是否出现过。
这道题目,只是读入和判断有些难。【尝试过暴力,果断的TLE】。
同时要注意赋值问题。初始值一定要赋值对。
J.laimao