社区讨论
MLE求助
P1026[NOIP 2001 提高组] 统计单词个数参与者 1已保存回复 0
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 0 条
- 当前快照
- 1 份
- 快照标识符
- @lyjtqsai
- 此快照首次捕获于
- 2024/07/13 15:47 2 年前
- 此快照最后确认于
- 2024/07/13 16:52 2 年前
rt
CPP#include<bits/stdc++.h>
using namespace std;
int n, k, s;
string a[101], b[11];
int o, c;
bool f[201], g[201];
int cha(int x){
for(int i = 0; i < 201; i++) g[i] = 0;
int z, ans = 0;
for(int i = 0; i < s; i++){
bool t;
z = 0;
while((z = a[x].find(b[i], z)) != string::npos){
t = 1;
if (g[z] == 1) t = 0;
for(int j = z; j < z + b[i].size() - 1; j++){
if (f[j] == 1){
t = 0;
}
}
if (t == 1){
// cout << ans << ':' << b[i] << ' ' << z + 1 << endl;
g[z] = 1;
ans++;
}
z += b[i].length();
}
}
/*
for(int i = 0; i < s; i++){
if ()
z = a[x].find(b[i]);
}
*/
return ans;
}
int dfs(int u, int l, int x){
if (l == k - 1){
c = max(c, cha(x));
return 0;
}
f[u] = 1;
int z;
for(int i = 0; i < s; i++){
z = 0;
while((z = a[x].find(b[i], z)) != string::npos){
dfs(z, l + 1, x);
z += b[i].length();
}
}
f[u] = 0;
// dfs(u, l + 1, x);
}
int main(){
cin >> n >> k;
for(int i = 0; i < n; i++){
cin >> a[i];
}
cin >> s;
for(int i = 0; i < s; i++){
cin >> b[i];
}
for(int i = 0; i < n; i++){
c = 0;
for(int j = 0; j < 201; j++){
f[j] = 0;
}
dfs(0, 0, i);
cout << c << endl;
}
}
/*
1 3
aabbcc
2
aab
a
*/
回复
共 0 条回复,欢迎继续交流。
正在加载回复...