现在有一个打怪类型的游戏,这个游戏是这样的,你有个技能,每一个技能会有一个伤害,同时若怪物低于一定的血量,则该技能可能造成双倍伤害,每一个技能最多只能释放一次,已知怪物有点血量,现在想问你最少用几个技能能消灭掉他(血量小于等于)。

区块链毕设网qklbishe.com为您提供问题的解答

现在有一个打怪类型的游戏,这个游戏是这样的,你有现在有一个打怪类型的游戏,这个游戏是这样的,你有个技能,每一个技能会有一个伤害,同时若怪物低于一定的血量,则该技能可能造成双倍伤害,每一个技能最多只能释放一次,已知怪物有点血量,现在想问你最少用几个技能能消灭掉他(血量小于等于)。个技能,每一个技能会有一个伤害,同时若怪物低于一定的血量,则该技能可能造成双倍伤害,每一个技能最多只能释放一次,已知怪物有现在有一个打怪类型的游戏,这个游戏是这样的,你有个技能,每一个技能会有一个伤害,同时若怪物低于一定的血量,则该技能可能造成双倍伤害,每一个技能最多只能释放一次,已知怪物有点血量,现在想问你最少用几个技能能消灭掉他(血量小于等于)。点血量,现在想问你最少用几个技能能消灭掉他(血量小于等于现在有一个打怪类型的游戏,这个游戏是这样的,你有个技能,每一个技能会有一个伤害,同时若怪物低于一定的血量,则该技能可能造成双倍伤害,每一个技能最多只能释放一次,已知怪物有点血量,现在想问你最少用几个技能能消灭掉他(血量小于等于)。)。

import java.util.Scanner;

/**
 * @author wudi

 * @since 2022/9/11 – 10:20
   暴力递归 这个标签因为是直接在原来的类上改的 所有日期不对

 */
public class Main {

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int group = scanner.nextInt();
        while (group > 0){
            int n = scanner.nextInt();
            int m = scanner.nextInt();
            int []attack = new int[n];
            int []doubleAck = new int[n];
            // n 个技能 怪物有m点血量
            boolean []used  = new boolean[n];
            for (int i = 0;i<n;i++){
                attack[i] = scanner.nextInt();
                doubleAck[i] = scanner.nextInt();
            }
            int process = process(attack, doubleAck, m,used);
            System.out.println(process);
            group–;
        }

    }

    private static int process(int[] attack, int[] doubleAck, int m,boolean []used) {
        if (m <= 0) return 0;
        int count = 0x7fffffff;
        for (int i = 0;i<attack.length;i++){
            if (used[i]) continue;
            if(m <= doubleAck[i]){
                used[i] = true;
                int res = process(attack, doubleAck, m – 2 * attack[i], used);
                if (res!=-1){
                    count = Math.min(count,res + 1);
                }
                used[i] = false;
            }else {
                used[i] = true;
                int res = process(attack, doubleAck, m  – attack[i], used);
                if (res!=-1){
                    count = Math.min(count,res + 1);
                }
                used[i] = false;
            }
        }
        return count == 0x7fffffff?-1:count;
    }
}

56:19

以上就是关于问题现在有一个打怪类型的游戏,这个游戏是这样的,你有个技能,每一个技能会有一个伤害,同时若怪物低于一定的血量,则该技能可能造成双倍伤害,每一个技能最多只能释放一次,已知怪物有点血量,现在想问你最少用几个技能能消灭掉他(血量小于等于)。的答案

欢迎关注区块链毕设网-
专业区块链毕业设计成品源码,定制。

区块链NFT链游项目方科学家脚本开发培训

承接区块链项目定制开发

微信:btc9767

QQ :1330797917

TELEGRAM: BTCOK9

承接区块链项目定制开发


qklbishe.com区块链毕设代做网专注|以太坊fabric-计算机|java|毕业设计|代做平台-javagopython毕设 » 现在有一个打怪类型的游戏,这个游戏是这样的,你有个技能,每一个技能会有一个伤害,同时若怪物低于一定的血量,则该技能可能造成双倍伤害,每一个技能最多只能释放一次,已知怪物有点血量,现在想问你最少用几个技能能消灭掉他(血量小于等于)。