题意
意思和E1一样 只不过可以用不同的颜色,要求用的颜色越少越好
思路
我们由E1知道 要两个非严格递增序列组成即可
那么E2就是看序列能不能由ans个非严格递增序列组成 ans越小越好
那么就一直找即可
code
#include<bits/stdc++.h>
#define endl '\n'
using namespace std;
const int maxn=200+5;
int n;
string s;
int vis[maxn];
int main(){
ios::sync_with_stdio(false);
cin.tie(0);
cin>>n;
cin>>s;
vector<int> v(n,0);
int k=0,ans=1;
while(k<n){
char ch='a';
for(int i=0;i<n;i++)
if(!v[i]&&s[i]>=ch) ch=s[i],v[i]=ans,k++;
++ans;
}
cout<<ans-1<<endl;
for(int i=0;i<n;i++) cout<<v[i]<<" ";
return 0;
}
学如逆水行舟,不进则退