比赛 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;
}