求助全 RE
查看原帖
求助全 RE
406941
Register_int-std=c++14楼主2022/10/1 08:03

rt,样例没问题,但也不至于全 RE 吧……

#include <bits/stdc++.h>

using namespace std;

typedef long long ll;

const int MAXN = 1e3 + 10;
const int MAXM = 5e5 + 10;

int ch[MAXM][26], tot;

bitset<MAXM> vis[MAXN];

inline 
void insert(char *s, int p) {
	int len = strlen(s), k = 0;
	for (int i = 0; i < len; i++) {
		if (!ch[k][s[i] - 'a']) ch[k][s[i] - 'a'] = ++tot;
		k = ch[k][s[i] - 'a'];
	}
	vis[k][p] = 1;
}

int n, m;

inline 
void query(char *s) {
	int len = strlen(s), k = 0;
	for (int i = 0; i < len; i++) {
		if (!ch[k][s[i] - 'a']) return ;
		k = ch[k][s[i] - 'a'];
	}
	for (int i = 1; i <= n; i++) {
		if (vis[k][i]) printf("%d ", i); 
	}
	puts("");
}

char s[30];

int main() {
	scanf("%d", &n);
	for (int i = 1, k; i <= n; i++) {
		scanf("%d", &k);
		for (int j = 1; j <= k; j++) scanf("%s", s), insert(s, i);
	}
	scanf("%d", &m);
	while (m--) scanf("%s", s), query(s);
}
2022/10/1 08:03
加载中...