洛谷:P3879 [TJOI2010]阅读理解(字典树)

题目:

洛谷:P3879 [TJOI2010]阅读理解(字典树)_第1张图片

分析:本来用的map。结果内存不够,

洛谷:P3879 [TJOI2010]阅读理解(字典树)_第2张图片

代码:

#include
using namespace std;
map<string,int> A[1005];
int main()
{
 int m,n;
 cin>>m;
 for(int i=0;i<m;i++)
 {
  int c; cin>>c;
  for(int j=0;j<c;j++) 
  {
   string s; cin>>s; A[i][s]++;
  }
 }
 cin>>n;
 for(int ii=0;ii<n;ii++)
 {
  string s; cin>>s;
  for(int i=0;i<m;i++)
  {
   if(A[i][s]!=0) cout<<i+1<<' ';
  }
  cout<<endl;
 }
}

看题解用的字典树。

在leetcode上系统的做过。还有印象。代码懒得写了。

当是用的链表。扫题解没用。

自己想了想,用2个二维数组就行了A【x】【26】。一个存放下一个,另一个存放A【i】【j】是否可以结束,

你可能感兴趣的:(字符串)