算法:每次删1位,如果是单调不下降,删最后一位,否则删第一个单调不上升子串的第一个字母。
#include<iostream>
#include<string>
using namespace std;
void solve(string &s)
{
int i,len;
len=s.size();
for (i=1;i<len;i++)
if (s[i]<s[i-1]) break;
if (i>=len) s.erase(len-1,1);
else s.erase(i-1,1);
}
int main()
{
string s;
int n;
cin>>s>>n;
for (int i=0;i<n;i++)
solve(s);
cout<<s<<endl;
//system("pause");
return 0;
}
posted on 2012-07-07 00:10
龙在江湖 阅读(309)
评论(0) 编辑 收藏 引用 所属分类:
贪心