问题描述
琪琪喜欢旅行。有一天她找到了一盏魔法灯,可惜灯里的精灵没那么亲切。琪琪必须回答一个问题,然后精灵就会实现她的梦想之一。
问题是:给你一个整数,你可以删除确切的m位。左数字将形成一个新的整数。你应该把它最小。
不允许更改数字的顺序。现在你能帮助琪琪实现她的梦想吗?

输入
有几个测试案例。
每个测试案例将包含您给出的整数(最多可能包含 1000 位数字)和整数 m(如果整数包含 n 位,m 不会比 n 大)。给定整数将不包含领先零。

输出
对于每个案例,输出可以在一行中获取的最低结果。
如果结果包含领先零,则忽略它。

示例输入
178543 4
1000001 1
100001 2
12345 2
54321 2

样本输出
13
1
0
123
321

能力很弱,切勿好高骛远,
先对老师以及其他同学的代码进行学习!!!
···············memset函数将num这个数字数组分割成一个个部分进行处理计算;
#include <bits/stdc++.h>
using namespace std;
#define MXN 1010
int n, vis[MXN];
char num[MXN];
int main()
{
while(memset(num, 0, sizeof num), scanf("%s %d", num, &n) == 2){
memset(vis, 0, sizeof vis);
for(int i = 1; num[i] != ‘\0’ && n > 0; i++){// 从左侧第2个开始扫描逆序
for(int j = i-1; j >= 0 && n > 0; j–){ // 与前i-1个依次比较
if(vis[j]) continue; // 已删除的跳过
if(num[i] < num[j]) vis[j] = 1, n–; // 逆序删除
else break; // 遇到非逆序中止比较
}
}
for(int i = MXN-1; i >= 0 && n > 0; i–){ // 从后往前删除
if(vis[i] == 1 || num[i] == ‘\0’) continue;
vis[i] = 1, n–;
}
int p = 0; // 开始输出
while(num[p] == ‘0’ || vis[p]) p++; // 跳过前导0
if(num[p] == ‘\0’) printf(“0”); // 仅有前导0时
else{
while(num[p] != ‘\0’){
if(!vis[p]) printf("%c", num[p]);
p++;
}
}
printf("\n");
}
return 0;
}

TKO 2-4基本贪心之求最小数字 3183相关推荐

  1. 贪心法求树的最小支配集,最小点覆盖,最大独立集

    原文地址(转自 Ashly的博客) 定义: 最小支配集:对于图G = (V, E) 来说,最小支配集指的是从 V 中取尽量少的点组成一个集合, 使得 V 中剩余的点都与取出来的点有边相连.也就是说,设 ...

  2. 使用贪心算法解决最小生成树问题。

    使用贪心算法解决最小生成树问题. #include<iostream> #include<algorithm> using namespace std; const int M ...

  3. UVA11889(给出lcm(A,B)=C中的AC求最小的B)

    题意:      给出最小公倍数LCM(A,B) = C中的A,C求最小的B. 思路:       lcm=(a*b)/gcd,把等号两侧同时除以a得到lcm/a=b/gcd左侧是已知的,右侧的gcd ...

  4. 贪心算法之最小堆实现霍夫曼编码

    贪心算法之最小堆实现霍夫曼编码 实现之前需要学习的地方: 如果你不了解堆.堆的插入.堆的删除,可以先看下我前面几篇博客 http://blog.csdn.net/u011068702/article/ ...

  5. 贪心算法——字典序最小问题

    2019独角兽企业重金招聘Python工程师标准>>> 贪心算法--字典序最小问题 问题主题:字典序最小 问题描述: 给定长度为N的字符串S,要构造一个长度为N字符串T.T是一个空串 ...

  6. 试除法求最小N个素数之二

    Trial division 试除法求最小N个素数是一个经典的算法. 这个算法不同于前一个版本<试除法求最小N个素数>的方法,也是一个比较快速的方法. 这个算法考虑以下两点: 1.偶数中只 ...

  7. 一种更简单的求最小平方均值函数(MSE)的方法 -- 梯度下降法。

    在上一篇博客中我们通过解析解法算出来了 但是上面公式中的对称阵是N维乘以N维的,复杂度为O(n*n*n),虽然很精准但是很慢. 为此我们引入梯度下降法 我们首先大致画出MSE的图像,MSE是一个开口向 ...

  8. hdu3491 最小点割集(无向图求最小点割集通用方法)

    无向图最小点割集,确定起点S,终点T.每个点都有自己的点权值vi,求最小点权和的割点集,使得S无法到达T. 解法:将每个点拆分为两个点v和v',之间的权值为vi(单向边),将原图中的每条边赋权值为IN ...

  9. 求最小码距 (10 分)

    求最小码距 (10 分) 代码长度限制 16 KB 时间限制 400 ms 内存限制 64 MB 题目描述 计算机组成原理老师给小明出了一道求最小码距的题目, 有以下由1个字节组成的合法编码集{0xA ...

最新文章

  1. 我拍了拍 Redis,没想到被移出了群聊......
  2. 10 行 Python 代码自动清理电脑重复文件,解放双手!
  3. 30+的中年打工人加班最狠!全球一年74.5万人“过劳死”丨世卫组织官方统计
  4. 如何为你的回归问题选择最合适的机器学习算法?
  5. 数据仓库分层类型-具体实例
  6. java8新特性简述
  7. LeetCode 1618. 找出适应屏幕的最大字号(二分查找)
  8. 西媒盘点:历史不该遗忘的七位女数学家
  9. 脚本学习python和linux-shell和jQuery(javascript)
  10. 40vf什么意思_LED 的基本术语VF、IV、WL、IR 解释及光通量换算关系
  11. tp3.2 执行原生sql
  12. JavaScript强化教程——Bootstrap
  13. Linux系统如何安装PDF编辑器,在Ubuntu中编辑PDF文件的5种方法
  14. 批量给pdf加水印,请用这个办法
  15. Unicode和GB2312编码表
  16. office 2010 在安装过程中出错
  17. Java 枚举和泛型
  18. 证件照换底色,快速简单!(附去水印宝藏工具)
  19. NRF51822蓝牙服务(9)——动态修改设备的名称
  20. 常见多变量/多元统计分析方法分类图

热门文章

  1. 树莓派通过java获取麦克风声音并播放
  2. 使用VSTS的Git进行版本控制(四)——在Visual Studio中管理分支
  3. ICASSP2021丨多说话人多风格音色克隆大赛(M2VoC)
  4. 百度游戏娱乐平台-百度的又一个新东西
  5. 1python软件的下载官网是_学Python软件下载-学Python软件官方版下载v1.0-upan
  6. python用matploblib库画准确率、损失率折线图
  7. CentOS下安装MSSqlServer数据库
  8. 国庆将至,我已经为你想好了文案
  9. 学习javascript_为什么我不能学习JavaScript?
  10. 海思处理器在单板上使用GDB的方法