1140. 【贪心算法】删数问题 (Standard IO)
时间限制: 1000 ms 空间限制: 262144 KB 具体限制
题目描述:
键盘输入一个高精度的正整数n(≤240位),去掉其中任意s个数字后剩下的数字按原左右次序将组成一个新的正整数。编程对给定的n和s,寻找一种方案,使得剩下的数字组成的新数最小。
输入:
n
s输出:
最后剩下的最小数。
样例输入:
175438 4样例输出:
13
思路:xxx
代码:
#include<bits/stdc++.h>
using namespace std;
string a,b;
int s;
int main()
{
cin>>a>>s;
a='0'+a;
a=a+'0';
int len = a.size();
for(int z=1;z<=s;z++)
{
for(int i=1;i<len-1;i++)
{
if(a[i+1]<a[i])
{
for(int j=i;j<len;j++)
{
a[j]=a[j+1];
}
len--;
break;
}
}
}
int flag=0;
for(int i=1;i<len-1;i++)
{
if(flag==1||a[i]!='0')
{
b+=a[i];
flag=1;
}
}
if(b.size()==0) b='0';
cout<<b;
}