如题:ac记录
代码如下
#include<vector>
#include<string.h>
#include<stdio.h>
using namespace std;
vector<long long>line[1005];
char word[25];
long long trans(int sizet)
{
long long num=0;
for(int i=0;i<sizet;i++)
{
num=num*26+word[i]-'a'+1;
}
return num;
}
int main()
{
int n;
scanf("%d",&n);
for(int i=1;i<=n;i++)
{
int t;
scanf("%d",&t);
for(int j=0;j<t;j++)
{
scanf("%s",&word);
long long temp1=trans(strlen(word));
line[i].push_back(temp1);
}
}
int m;
scanf("%d",&m);
for(int i=0;i<m;i++)
{
scanf("%s",&word);
long long check1=trans(strlen(word));
for(int j=1;j<=n;j++)
{
bool flag=false;
int sizet=line[j].size();
for(int k=0;k<sizet;k++)
{
if(line[j][k]==check1)
{
flag=true;
printf("%d ",j);
break;
}
if(flag==true)
break;
}
}
printf("\n");
}
return 0;
}
求解答