标签:space ace 限制 通过 一个 i++ col cin enter
输入一个高精度的正整数n,去掉其中任意s个数字后剩下的数字按原左右次序组成一个新的正整数。编程对给定的n和s,寻找一种方案使得剩下的数字组成的新数最小。
输出新的正整数。(n不超过240位)
输入数据均不需判错。
n
s
最后剩下的最小数。
175438 4
13
逐个选本位能取到的最小值,贪心,
#include<iostream> #include<cstring> using namespace std; int main(){ char a[250],b[250]; int n,ii=0; int s=0; cin>>a>>n; int l=strlen(a); for(int i=0;i<l-n;i++){//逐个取第i+1位的最小值,为局部最优即全局最优 int Min=59; for(int j=s;j<=n+i;j++){ if(a[j]<Min){ Min=a[j]; s=j+1; b[i]=Min; } } } while(b[0]==‘0‘){//去掉首位0 for(int i=0;i<l-1;i++) b[i]=b[i+1]; l--; } cout<<b<<endl; return 0; }
标签:space ace 限制 通过 一个 i++ col cin enter
原文地址:https://www.cnblogs.com/yfr2zaz/p/10356366.html