蚂蚁4.13笔经
第一题贪心,输入数非常大,需用字符串处理。通过优先改变能带来最大增益的位,达到最少修改次数。
第二题预处理金币奖励的前缀和,再用动态规划即可。
1.最少改变位数
有一个整数K和一个超级大的整数。将用十进制拆分,拆分后每一位数的和是否大于等于。例如拆分后变为,各部分的和为。如果不能大于等于,请问最少修改几个位数上的值可以使得大于等于(保证一定存在一种修改方案)
2.珠宝买卖
有一个层的珠宝塔,每一层都有一种珠宝,数量无限。具体地,第层的珠宝价格为个金币,价值为。现在,您将从第1层开始,逐层向上攀登。每当你第一次进入第层时,你将会得到个金币的初始奖励,而后你有两种选择:ALLIN:花光所有金币,购买当前层的珠宝,并取,由于不设找零,所以多花的钱会直接消失(即假如你有x个金币,你将得到的价值,并且你手中金币数将变为 0);随后进入第层;SKIP:直接进入第层,如果此时你位于第层你将会直接离开珠宝塔。初始时你有个金币,请问,从第1层进入到第层最终离开,你最多能获得多少价值?
详细题目及解析
蚂蚁4.13code
第三sheet#笔试##蚂蚁笔试##暑期实习#
第二题预处理金币奖励的前缀和,再用动态规划即可。
1.最少改变位数
有一个整数K和一个超级大的整数。将用十进制拆分,拆分后每一位数的和是否大于等于。例如拆分后变为,各部分的和为。如果不能大于等于,请问最少修改几个位数上的值可以使得大于等于(保证一定存在一种修改方案)
2.珠宝买卖
有一个层的珠宝塔,每一层都有一种珠宝,数量无限。具体地,第层的珠宝价格为个金币,价值为。现在,您将从第1层开始,逐层向上攀登。每当你第一次进入第层时,你将会得到个金币的初始奖励,而后你有两种选择:ALLIN:花光所有金币,购买当前层的珠宝,并取,由于不设找零,所以多花的钱会直接消失(即假如你有x个金币,你将得到的价值,并且你手中金币数将变为 0);随后进入第层;SKIP:直接进入第层,如果此时你位于第层你将会直接离开珠宝塔。初始时你有个金币,请问,从第1层进入到第层最终离开,你最多能获得多少价值?
详细题目及解析
蚂蚁4.13code
第三sheet#笔试##蚂蚁笔试##暑期实习#