编程语言
首页 > 编程语言> > 模拟DNF放技能的蓝耗问题(P2006题题解,Java语言描述)

模拟DNF放技能的蓝耗问题(P2006题题解,Java语言描述)

作者:互联网

题目要求

P2006题目链接
在这里插入图片描述
在这里插入图片描述

分析

看来出题人喜欢DNF啊,还对蓝充足颇为渴求 (废话,没蓝干甚) ……

这题貌似水题,但AC率不高,因为有坑诶……

首先是耗蓝为0的时候,伤害还是打的出来的(参考平A)……这将导致RE(除零)或者WA……

还有就是这个迷幻的题意表述啊,真的是……其实它的意思是:我们可以随便选一种技能,随便放,直到蓝不够用,对方假设不伤害我们。每次模拟一种技能,看看有几种技能能符合使用要求。

就是这个意思,其实分析到这里就回归水题本质了,但问题是这破题……ε=(´ο`*)))唉……没啥……看代码就行了~~

StringBuilder,看看,好使吧……多用这个才是正道……

AC代码(Java语言描述)

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int max = scanner.nextInt(), num = scanner.nextInt(), min = scanner.nextInt();
        long consume, damage;
        StringBuilder builder = new StringBuilder();
        for (int i = 1; i <= num; i++) {
            consume = scanner.nextLong();
            damage = scanner.nextLong();
            if ((consume == 0 && damage > 0) || (consume > 0 && consume <= max && damage*(max/consume) >= min)) {
                builder.append(i).append(" ");
            }
        }
        scanner.close();
        if (builder.length() == 0) {
            System.out.println(-1);
        } else {
            System.out.println(builder.toString().trim());
        }
    }
}
进阶的JFarmer 发布了407 篇原创文章 · 获赞 666 · 访问量 6万+ 私信 关注

标签:蓝耗,DNF,consume,scanner,题解,builder,System,nextInt,Scanner
来源: https://blog.csdn.net/weixin_43896318/article/details/104106797