Run ID 作者 问题 语言 测评结果 分数 时间 内存 代码长度 提交时间
51519 MattL 最优子序列 C++ 运行超时 0 1094 MS 6968 KB 1344 2022-07-13 11:50:17

Tests(0/20):


#include<bits/stdc++.h> using namespace std; const int N=3000+10; int n,k,type,cnt; string s,ss; char t=' '; struct mys { int num; char cr; }a[N]; vector<int> app[13]; vector<string> ans; int anscnt,maxn=0; int dui[N]; string anss="zzzzz"; bool vis[12]; void jia(string &str,char chr,int nn) { for(int i=1;i<=nn;i++) str+=chr; } void dfs(int x,int num,string lst) { cout<<lst<<endl; if(lst.size()>=maxn)ans.push_back(lst),maxn=lst.size(); if(!app[x].size()||x<0||num>=app[x].size()||vis[x])return ; vis[x]=true; // dfs(a[app[x][num]+1].cr-'a',dui[app[x][num]+1],lst); // jia(lst,char(x+'a'),a[app[x][num]].num); for(int i=num;i<app[x].size();i++) jia(lst,char(x+'a'),a[app[x][i]].num),dfs(a[app[x][i]+1].cr-'a',dui[app[x][i]+1],lst); vis[x]=false; } int main() { cin>>n>>k>>type; cin>>ss; for(int i=0;i<n;i++) if(ss[i]==a[cnt].cr) a[cnt].num++; else a[++cnt].num=1,a[cnt].cr=ss[i]; for(int i=1;i<=cnt;i++) app[a[i].cr-'a'].push_back(i),dui[i]=app[a[i].cr-'a'].size()-1; for(int i=0;i<k;i++) dfs(i,0,""); cout<<maxn<<endl; if(type==0)return 0; for(int i=0;i<ans.size();i++) if(ans[i].size()==maxn) if(type==2) anss=min(anss,ans[i]); else{ cout<<ans[i]<<endl;return 0;} cout<<anss<<endl; return 0; } /* 13 12 2 kickickickcik */


测评信息: