| 比赛 |
2026.1.3 |
评测结果 |
AAAATTTTTAAAAATTTTTT |
| 题目名称 |
字符串游戲 |
最终得分 |
45 |
| 用户昵称 |
HXF_0号 |
运行时间 |
12.122 s |
| 代码语言 |
C++ |
内存使用 |
3.55 MiB |
| 提交时间 |
2026-01-03 11:17:51 |
显示代码纯文本
#include<bits/stdc++.h>
using namespace std;
int n,m,k,ans;
unordered_set<string> S;
string a,b;
void dfs(string s,int u){
if(s.size()<ans) ans=s.size();
if(u>=k) return;
int ss=s.size();
for(int i=0;i<ss;i++)
for(int j=i+1;j<=ss;j++)
if(S.count(s.substr(i,j-i))) dfs(s.substr(0,i)+s.substr(j),u+1);
return ;
}
int main(){
freopen("string.in","r",stdin);
freopen("string.out","w",stdout);
cin>>n>>m>>k>>a;
for(int i=0;i<m;i++){
cin>>b;
S.insert(b);
}
ans=a.size();
if(k==1){
int len=a.size();
for(int i=0;i<len;i++)
for(int j=i+1;j<=len;j++){
string sub=a.substr(i,j-i);
if(S.count(sub)) ans=min(ans,len-j+i);
}
}else dfs(a,0);
cout<<ans<<endl;
return 0;
}