【NOI OJ】3528 最小新整数

news/2024/11/25 8:50:15/

3528:最小新整数

 

总时间限制: 

1000ms 

内存限制: 

65536kB

描述

给定一个十进制正整数n(0 < n < 1000000000),每个数位上数字均不为0。n的位数为m。
现在从m位中删除k位(0<k < m),求生成的新整数最小为多少?
例如: n = 9128456, k = 2, 则生成的新整数最小为12456

输入

第一行t, 表示有t组数据;
接下来t行,每一行表示一组测试数据,每组测试数据包含两个数字n, k。

输出

t行,每行一个数字,表示从n中删除k位后得到的最小整数。

样例输入

2
9128456 2
1444 3

样例输出

12456
1

 

#------------------------------------------------------------------------------#

 

此题先看看思路:

如果是直接删掉最大的数字,很容易便可举出反例

1529 1

如果直接删最大的9,结果为152,如果删掉5,结果为129,显然删掉5才是最佳答案。

再看一组数据:

141519 2

如果删最大的9,5,结果为1411,如果删掉4,5,结果为1119,显然删掉4,5才是最佳答案。

 

发现什么了吗?

 

先看第一组:

1  5  1  9

小 大

留 留

 

第二组:

1   4  1  5  1   9

小  小  小 大

留  留 留

 

删掉的是“山峰”,也就是比后一个数大的数,且越靠前

 

越早删。

 

大体思路也就一句话:删除靠前的“山峰”。

 

另外,有几个坑不得不提:

1.注意删除前导0(虽然它说每个数位都不为0,但是测试数据里面好像有这样的数据)。

2.删过一个数记得长度len--

3.多组数据(其实数组可以不清零,因为有len控制查找范围)。

4.当把数删为0(见数据4)时,要输出0

 

另外送大家几组数据(我就在此栽过跟头):

 

   输入                       输出

133420 3                   120

1444 3                        1

20018 2                      1

10000 1                      0

 

就这些了,附代码:

 

#include<cstdio>
#include<cstring>
char s[12];
int main()
{int n;scanf("%d",&n);for(int q=0;q<n;q++){int k;scanf("%s",s);scanf("%d",&k);int len=strlen(s); while(k--)//当k为零时,表示数已删够k位,跳出循环{for(int i=0;i<len;i++)if(s[i]>s[i+1]){for(int j=i;j<len;j++)s[j]=s[j+1];break;//当一个“山峰”删过之后记得break,否则……自己试试吧}len--;//既然删了一个数,长度肯定要减少}while(s[0]=='0')//删除前导0(我方法很笨,不要在意){for(int i=0;i<len;i++)s[i]=s[i+1];len--;}if(s[0]==0)//处理删到没有(全是“\0”)的情况printf("0\n");elseprintf("%s\n",s);}return 0;
}


                                                                                                    By WZY


http://www.ppmy.cn/news/353597.html

相关文章

常见的贴片LED封装尺寸规格表

LED灯珠分为表贴式&#xff08;SMD&#xff09;和直插式&#xff08;DIP&#xff09;&#xff0c;表贴就是大家常说的贴片&#xff0c;也成为贴片式&#xff0c;本文主要介绍贴片灯珠的规格尺寸和命名。 单颗LED封装后通常以其尺寸命名&#xff0c;比如&#xff1a; 3528、5050…

OpenJudge——3528:最小新整数

第一行——咕咕咕。 第二行——记下这个题目是为了给自己个警醒&#xff0c;不坚持做题真的会退化的&#xff0c;谁能想到我花了两个小时就写了一道贪心呢&#xff1f;甚至一开始是八十行冗长的代码。逆水行舟&#xff0c;不进则退。 题目描述最小新整数 给定一个十进制正整…

海泰科301022

2021.11.24买入1000股 2021.11.30卖出 买入价为64.150 卖出价为73.700&#xff0c;盈亏率为14.89% 短期趋势&#xff1a; 前期出现过强势行情 中期趋势&#xff1a; 回落整理中且下跌有加速趋势。 长期趋势&#xff1a; 长期一般&#xff0c;有一定的投资价值。 股价…

2015_B t2星系炸弹

星系炸弹 在X星系的广袤空间中漂浮着许多X星人造“炸弹”&#xff0c;用来作为宇宙中的路标。 每个炸弹都可以设定多少天之后爆炸。 比如&#xff1a;阿尔法炸弹2015年1月1日放置&#xff0c;定时为15天&#xff0c;则它在2015年1月16日爆炸。 有一个贝塔炸弹&#xff0c;2014年…

中国卫星通信集团公司

2001年12月19日中国卫星通信集团公司&#xff08;简称“中国卫通”&#xff09;正式挂牌成立。中国卫通的成立是我国电信行业深化改革的重大战略部署&#xff0c;是卫星通信领域内的重大举措&#xff0c;也是进一步开拓卫星通信事业的新起点。中国卫通是中央管理的六大基础电信…

青龙面板-宝石星球

直接上小毛毛 小毛毛--宝石星球 1.拉库 ql raw https://gitee.com/ajouter/shiyi.git/raw/shiyi/bsxq.js 定时&#xff0c;自己看任务&#xff0c;我定了三次 2.捉包 可以真机捉&#xff0c;提示无网也可以捉 实在捉不到丢去虚拟机捉 关键字&#xff1a;user/info 3.填写…

Tycho Brahe 超新星的伴星

Type Ia超新星是极亮的爆炸&#xff0c;在可观测的宇宙中大多数地方都能看到。由于它们在显示宇宙的加速膨胀的测定工作中所起的作用&#xff0c;它们已成为有广泛科学兴趣的天体。它们被认为是白矮星&#xff08;多数恒星的超致密残留物&#xff09;的残留物&#xff0c;这些白…

近岸蛋白质与沃森生物签订mRNA疫苗原料战略合作协议;Teri Loxam担任科越医药首席运营官兼首席财务官 | 医药健闻...

| 行业焦点 全球领先的合同研究组织(CRO)BioAgilytix宣布&#xff0c;公司已签署一份协议&#xff0c;将进一步获得专注于打造世界级全球公司的领先国际私人投资公司Cinven提供的投资。 Cinven将收购BioAgilytix的多数股权&#xff0c;而目前的多数股权投资机构、总部位于布鲁塞…