Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
51588 | AK2022071313 | 最优子序列 | C++ | 运行超时 | 10 | 1000 MS | 480 KB | 550 | 2022-07-13 11:54:29 |
#include<iostream> #include<cstring> using namespace std; bool b[27]; char s[3005],ans1[3005],ans[3005]; int n,k,l,type; void fuck(int i,int j){ if(i==n){ if(j>strlen(ans)||j==strlen(ans)&&strcmp(ans1,ans)==-1){ strcpy(ans,ans1); } return; } fuck(i+1,j); if(!j||!b[s[i]-'a']||s[i]==ans1[j-1]){ bool b1=b[s[i]-'a']; b[s[i]-'a']=1,ans1[j]=s[i],fuck(i+1,j+1),b[s[i]-'a']=b1,ans1[j]='\0'; } } int main(){ cin>>n>>k>>type>>s; fuck(0,0); cout<<strlen(ans)<<endl; if(type){ cout<<ans<<endl; } return 0; }