删数游戏
时间限制: 1 Sec
内存限制: 128 MB
题目描述
给出一个N位数字串,删除任意K位,使剩下的数最大。
输入
第1行:2个整数N和K(1<=K<=N<=500000)
第2行:N个数字(可能为0)
输出
第1行:1个可行到的最大的数
样例输入
10 4
4177252841
样例输出
775841
没有看过非高精度删数游戏的童鞋,戳我查看((^o^)/~)
思想分析
这道题所用到的算法是贪心,其思想是删除上升序列的第一位。
都分析到这里了,感觉就完了是不是?
然后我就去做了……
因为字符串操作不正确,然后就T了(我还用了erase函数……)。
代码如下–>
#include<iostream>
#include<cstring>
#include<algorithm>
using namespace std;
int n,k,Min=10;
string a;
int main()
{
cin>>n>>k;
getchar();
cin>>a;
for(int i=0;i<n;i++)
{
if(a[i]-'0'<=Min) Min=a[i]-'0';
else
{
int j=i-1;
while(j>=0&&a[j]<a[i])
a.e