删数游戏
Posted scott527407973
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了删数游戏相关的知识,希望对你有一定的参考价值。
题目描述
输入一个高精度的正整数n(≤240位),去掉其中任意s个数字后,剩下的数字按原左右次序组成一个新的正整数。编程对给定的n和s,寻找一种方案,使得剩下的数字组成的新数最小。
输入
第1行:一个正整数n;
第2行:s(s<n的位数).
输出
最后剩下的最小数。
样例输入
175438
4
样例输出
13
从左到右遍历,以找到最长递增序列的末位,删除该数字,并把后面的往前移动一位,重复操作s次
注意结果是0的情况!
![技术分享图片](/img/jia.gif)
1 #include <bits/stdc++.h> 2 3 using namespace std; 4 typedef long long ll; 5 6 int main() 7 { 8 string s; 9 int k; 10 cin>>s>>k; 11 int n=s.size(),j; 12 for(int i=0;i<k;i++) 13 { 14 for(j=0;j<n-1-i;j++) 15 { 16 if(s[j]>s[j+1]){ 17 break; 18 } 19 } 20 for(;j<n-1-i;j++) 21 s[j]=s[j+1]; 22 } 23 int cnt=0; 24 while(s[cnt]==‘0‘&&cnt<n-k) 25 { 26 cnt++; 27 } 28 if(cnt==n-k) 29 cout<<"0"<<endl; 30 else 31 { 32 for(int i=cnt;i<n-k;i++) 33 cout<<s[i]; 34 cout<<endl; 35 } 36 return 0; 37 }
以上是关于删数游戏的主要内容,如果未能解决你的问题,请参考以下文章