华为OD机考-小明减肥-DFS(JAVA 2025B卷)

java 复制代码
import java.util.*;
public class XiaomingLoseWeight {

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int[] ints = Arrays.stream(scanner.nextLine().split("\\s+")).mapToInt(Integer::parseInt).toArray();
        int n=ints[0],t=ints[1],k=ints[2];
        int[] arrs = Arrays.stream(scanner.nextLine().split("\\s+")).mapToInt(Integer::parseInt).toArray();
        int[] used = new int[n];
        Arrays.sort(arrs);
        dfs(arrs,used,0,t,k);
        System.out.println(cnt);

    }
    private static int cnt = 0;

    private static void dfs(int[] arrs,int[] used ,int start, int t, int k) {
        if(t==0 && k==0){
            cnt++;
        }
        for (int i = start; i < arrs.length; i++) {
            if(i<arrs.length-1&& arrs[i+1]==arrs[i]&&used[i]==0){
                continue;
            }
            used[i] = 1;
            dfs(arrs,used,start+1,t-arrs[i],k-1);
            used[i]=0;
        }
    }
}
相关推荐
lee_curry7 小时前
第四章 jvm中的垃圾回收器
java·jvm·垃圾收集器
九转成圣8 小时前
Java 性能优化实战:如何将海量扁平数据高效转化为类目字典树?
java·开发语言·json
直奔標竿8 小时前
Java开发者AI转型第二十七课!Spring AI 个人知识库实战(六)——全栈闭环收官,解锁前端流式渲染终极技巧
java·开发语言·前端·人工智能·后端·spring
金銀銅鐵9 小时前
[java] 编译之后的记录类(Record Classes)长什么样子(上)
java·jvm·后端
野生技术架构师10 小时前
金三银四面试总结篇,汇总 Java 面试突击班后的面试小册
java·面试·职场和发展
小袁拒绝摆烂11 小时前
多表关联大平层转JSON树形结构
java·json
ja哇12 小时前
大厂面试高频八股
java·面试·职场和发展
Mr_pyx12 小时前
【LeetHOT100】随机链表的复制——Java多解法详解
算法·深度优先
yoyo_zzm12 小时前
Laravel6.x新特性全解析
java·spring boot·后端