删数问题

转载 2015年11月17日 17:40:10

题目:

键盘输入一个高精度的正整数n(<=240位),

掉任意s个数字后剩下的数字按原左右次序将组成一个新的正整数。

编程对给定的n和s,寻找一种方案,使得剩下的数最小。

Simple Input
 178543
 4
Simple Output
 13
 
思路:
每一步总是选择一个使剩下的数最小的数字删除,即按高位到低位的顺序搜索,若各位数字递增,则删除最后一个数字;否则删除第一个递减区间的首字符,这样删一位便形成了一个新的数字串。然后回到串首,按上述规则再删除下一个数字
 
代码:

#include<cstdio>
#include<algorithm>
#include<cstring>
#include<string>
#include<cmath>
#include<iostream>
using namespace std;
#pragma warning(disable:4996)


int main()
{
string s;
int k;
cin >> s >> k;
if (k >= (s.size()))
s.erase();
else
{
while (k>0)
{
int i;
for (i = 0; (i < s.size() && s[i] <= s[i + 1]); i++);
s.erase(i, 1);
k--;
}
}
while ( s.size() >0 && s[0] == '0')  //删除前导0
{
s.erase(0, 1);
}
cout << s << endl;
//system("pause");
return 0;
}

8605 删数问题

  • 2013年12月05日 10:54
  • 1KB
  • 下载

继续贪心:删数问题

上次已经讲过一次贪心了,这次就来个小实战吧,下面看题: **删数问题**已知一个数组,要求从数组中删除n个数,要求剩下的数按顺序排列成的数字最小。例:数组为{1,3,2,4,7,0,5} n = ...

8605删数问题

  • 2013年01月27日 21:26
  • 20KB
  • 下载

删数问题题解

题目描述 给定一个正整数(位),从中删去n位后,使得剩下的数字组成的新数最小。 输入格式 第一行,要处理的正整数 第二行,一个整数n (n 输出格式 仅一行,组成的最小的新数   样例...

(华为笔试)删数 约瑟夫环问题

删数 热度指数:2641时间限制:1秒空间限制:32768K 本题知识点: 模拟  算法知识视频讲解 题目描述 有一个数组a[N]顺序存放0~N-1,要求每隔两个数删掉一个数,到末尾时循环...

删数问题

题目描述:   键盘输入一个高精度的正整数N(此整数中没有‘0’),去掉其中任意S个数字后剩下的数字按原左右次序将组成一个新的正整数。编程对给定的N和S,寻找一种方案使得剩下的数字组成的新数最小。 ...

ACM水题-----删数问题

Time Limit:1000MS  Memory Limit:65536KTotal Submit:485 Accepted:158 Language: not limitedDescription...
  • gzzheyi
  • gzzheyi
  • 2011年06月24日 22:42
  • 4215

【贪心算法初学】删数问题

题目: 键盘输入一个高精度的正整数n(位), 去掉任意s个数字后剩下的数字按原左右次序将组成一个新的正整数。 编程对给定的n和s,寻找一种方案,使得剩下的数最小。 Simple Input  178...

**删数问题**

**删数问题** Time Limit: 1000MS Memory Limit: 65536KB Problem Description 键盘输入一个高精度的正整数n(≤100位),去掉其中任...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:删数问题
举报原因:
原因补充:

(最多只允许输入30个字)