题目链接
题意:给出n个单词,只有小写字母组成,然后问如何选择单词,使得组成的长度最长,且组合出的串最多只能有2个字母不同。
解法:暴力枚举2个字母的组合情况,然后在判断。
#include<bits/stdc++.h>
using namespace std;
const int maxn=10005;
const int inf=1<<27;
string str[maxn];
int main(){
int n;scanf("%d",&n);
for(int i=0;i<n;i++){
cin>>str[i];
}
int ans=0,tmp;
for(int i=0;i<26;i++){
for(int j=0;j<26;j++){
tmp=0;
for(int k=0;k<n;k++){
bool flag=true;
char x='a'+i,y='b'+j;
for(int p=0;p<str[k].length();p++){
if(str[k][p]!=x&&str[k][p]!=y){
flag=false;
}
}
if(flag)tmp+=str[k].length();
}
ans=max(ans,tmp);
}
}
printf("%d\n",ans);
return 0;
}