ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

牛客真题编程——day2

2022-01-20 20:58:16  阅读:222  来源: 互联网

标签:巧克力 真题 攻击 结果 day2 回合 牛客 相乘 聚力


编程环境:java

1、回合制游戏

描述

你在玩一个回合制角色扮演的游戏。现在你在准备一个策略,以便在最短的回合内击败敌方角色。在战斗开始时,敌人拥有HP格血量。当血量小于等于0时,敌人死去。一个缺乏经验的玩家可能简单地尝试每个回合都攻击。但是你知道辅助技能的重要性。
在你的每个回合开始时你可以选择以下两个动作之一:聚力或者攻击。
    聚力会提高你下个回合攻击的伤害。
    攻击会对敌人造成一定量的伤害。如果你上个回合使用了聚力,那这次攻击会对敌人造成buffedAttack点伤害。否则,会造成normalAttack点伤害。
给出血量HP和不同攻击的伤害,buffedAttack和normalAttack,返回你能杀死敌人的最小回合数。

算法思路:

这道题的逻辑比较简单,根据题目意思,只需分情况处理即可。当normal攻击的2倍>=buff攻击时,相当于求对Hp/normal的倍数;否则(<时),Hp/buff如果整除,表明只需攻击Hp/buff*2次,当余数<nor时次数加1,否则次数加2.要注意的是整型的除法的向下舍入问题。

部分代码实现:

2、大整数相乘

描述:

有两个用字符串表示的非常大的大整数,算出他们的乘积,也是用字符串表示。不能用系统自带的大整数类型。

算法思路:

    大整数的字符串相乘,可以把它们拆分成竖式计算。对每一位的数字分别对应相乘,找到相乘的结果与整体结果之间的关系(索引与结果之间的位置关系),将每次相乘的结果加到最终结果的整型数组中。然后根据输出要求,将其转换为字符串输出。

逻辑关系:num1中的第i位与num2中的第j位,他们的结果占第i+j位和第i+j+1位

如图,将所有的结果累加在结果数组res中,res设一个自增长的vector数组。

3、六一儿童节

描述:

六一儿童节,老师带了很多好吃的巧克力到幼儿园。每块巧克力j的重量为w[j],对于每个小朋友i,当他分到的巧克力大小达到h[i] (即w[j]>=h[i]),他才会上去表演节目。老师的目标是将巧克力分发给孩子们,使得最多的小孩上台表演。可以保证每个w[i]> 0且不能将多块巧克力分给一个孩子或将一块分给多个孩子。

算法思想:

     对巧克力和儿童从小到大排序,以巧克力为索引依次遍历,当巧克力<=孩子需求时,则可以上台,人数加一。当所有的孩子遍历完成后,提前退出循环,防止重复的计数。

代码部分实现:

algorithm库sort函数

 

 

标签:巧克力,真题,攻击,结果,day2,回合,牛客,相乘,聚力
来源: https://blog.csdn.net/weixin_45750404/article/details/122607840

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有