宁波市近三年小学组决赛试题解读.pptVIP

  • 23
  • 0
  • 约5.95千字
  • 约 25页
  • 2016-12-19 发布于重庆
  • 举报
宁波市近三年小学组决赛 试题解读(部分) 胡苗坤 * 22届 试题一:最小数(100分) (源程序名:min.pas或min.c或min.cpp,编译后可执行程序名:min.exe) 【问题描述】   给定一个正整数n,请去掉其中的m个数字,使其剩下的数字按原先从左到右的相对次序组成一个新数,但该新数的值必须尽可能的小。 【输入】 输入文件min.in中只有一行,共2个整数,分别是n和m的值,中间用一个空格分隔。 【输出】 输出文件min.out中只有一行,该行只有一个整数,它是从n中去掉m个数字后所能得到的最小新数(注:如果新数的最高位是零,输出时请去掉这些零)。 【样例1】【输入】456547 1【输出】45547 【样例2】【输入】456547 3【输出】447 【样例3】【输入】1003 1 【输出】3 【数据限制】 本题共有10组测试数据,每组10分,共100分。 50%的数据, 10≤n≤2.1*109,另外50%的数据n不超过240位; 所有的数据m的值都小于n的位数。 由于正整数n的有效数位为240位,所以很自然地采用字符串类型存贮n。 那么如何决定哪s位被删除呢?是不是删除最大的那s个数字呢? [算法分析] 显然不是,大家很容易举出一些反例。 为了尽可能逼近目标,我们选取的贪心策略为:每一步总是选择一个使剩下的数最小的数字删去,即

文档评论(0)

1亿VIP精品文档

相关文档