注册 登录
编程论坛 C语言论坛

数字替换(C++)

Jason_ 发布于 2020-02-21 22:03, 2453 次点击
题目描述
味味很喜欢玩一个数字替换的游戏,数字替换游戏是这样的:给出一个 n 位正整数 a, 然后再给你一个长度为 m 的数字序列 b,味味可以用 b 中的一些数字与 a 中各个位置上的 数字进行一对一的交换(当然也可以选择不交换)。当然 b 中的每个位置上的数字最多只能 被使用一次。这个游戏的目的是经过一系列替换后,使 a 的数值达到最大。 味味很聪明,在位数不多的情况下,总能快速的求出最后 a 的最大数值,但是当 n 很 大时,味味就无能为力了,所以她希望会写程序的你帮助她快速的求解 a 最后能到达的那 个最大值。
输入
输入文件 change.in 共包含三行。第一行两个用空格隔开的正整数 n,m。第二行一个正 整数 a(a 的最高位必定不是 0)。第三行一个长度为 m 的数字序列 b。
输出
输出文件 change.out 仅包含一行一个数值,表示 a 最大可能达到的数值(输出不能含前 导 0)。
样例
输入1  复制
4 3
1024
010
输出1  
1124
输入2  
3 6
876
123459
输出2  
976
3 回复
#2
叶纤2020-02-21 22:48
这题不难,你可以先做一下伪代码如下
a[length]b[length]
for i to a.length
for  i to  i++    length--
a[i]<b[i]
a[i]=b[ i]
bi=b[length]
b length]=bi
print a[i]
#3
xianfajushi2020-02-21 23:43
这个找到规律即可,找到规律就好写做,如笔下有神。
找出B中最大的数,分别替换掉A中的各个,取各个最大。
程序稍后写。。。
只有本站会员才能查看附件,请 登录


[此贴子已经被作者于2020-2-22 00:48编辑过]

#4
Jason_2020-02-22 17:21
回复 3楼 xianfajushi
那个,大神能把程序贴一下吗?谢谢!
1