200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > 网易互娱校园招聘笔试 -《魔塔》

网易互娱校园招聘笔试 -《魔塔》

时间:2021-11-21 19:42:09

相关推荐

网易互娱校园招聘笔试 -《魔塔》

在经典游戏《魔塔》中,玩家需要控制主角与一个又一个怪物战斗。小明很喜欢

这个游戏,最近决定自己做一个魔塔玩玩,但是他在设置人物血量时犯了难,你能帮帮他吗?

在小明的设计中,主角和怪物都有攻击力、防御力、生命值三个属性,一共有N个怪物,且主角与怪物战斗的顺序是固定的。每场战斗都由主角先手,然后双方轮

流攻击,实际造成的伤害等于攻击力减去对方的防御力(伤害小于0时按0计算),直到一方的生命值归零后战斗才会结束。除此之外,小明还给主角加了一

个被动技能:

【被动技能一回复】在主角发动政击时,如果伤害值大于敌人剩余的生命值,那么溢出的伤害会为自己回复等量的生命。

在整个挑战过程中,任何时刻如果主角的生命值变为O,都会立即死亡,挑战失败。请问主角初始至少需要多少生命值才能保证通关呢?

输入描述:

输入第一行为一个正整数r,表示数据组数。

对于接下来每组数据,第一行为一个正整数N,表示怪物的数量。第二行为两个整数A和B,分别表示主角的攻击力和防御力。

接下来N行,每行三个整数A_i、B_i和H_i,表示第i个怪物的攻击力、防御力和生命值。

数据范围:

对于所有数据,满足1<=T<=5,1<=N<=100,0<=A,B,A_i,B_i<=100,1<=H i<=1000,

package com.sxf;import java.util.ArrayList;import java.util.List;import java.util.Scanner;class Solution {public int sum(int[][] gws) {int sums = 0;for (int[] gw: gws) {for (int val : gw) {sums += val;}}return sums;}public int demo(int u_gj, int u_fy, int[][] gws) {List<Integer> temp = new ArrayList<>();int[] gw;while (sum(gws) != 0) {for (int i = 0; i < gws.length; i++) {gw = gws[i];if (gw[0] + gw[1] + gw[2] == 0) {continue;}// 怪物实际攻击值int gw_gj = Math.max(gw[0] - u_fy, 0);// 主角实际攻击值int user_gj = Math.max(u_gj - gw[1], 0);// 主角攻击力<=怪物防御力,打不过if (user_gj == 0) {return -1;}while (gw[2] > 0) {// 主角攻击// 怪物死亡if (user_gj >= gw[2]) {temp.add(-(user_gj - gw[2]));gw[0] = 0;gw[1] = 0;gw[2] = 0;break;} else {gw[2] = gw[2] - user_gj;}// 怪物攻击temp.add(gw_gj);}}}int sum = 0;int result = 0;for (Integer val : temp) {sum += val;result = Math.max(result, sum);}return result+1;}}public class Main {public static void main(String[] args) {Scanner sc = new Scanner(System.in);try {while (sc.hasNext()) {int group = sc.nextInt();for (int i = 0; i < group; i++) {int gwNums = sc.nextInt();int user_gj = sc.nextInt();int user_fy = sc.nextInt();int[][] gws = new int[gwNums][3];for (int j = 0; j < gwNums; j++) {gws[j][0] = sc.nextInt();gws[j][1] = sc.nextInt();gws[j][2] = sc.nextInt();}int res = new Solution().demo(user_gj, user_fy, gws);System.out.println(res);}}}catch (Exception e){}}}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。