华为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;
        }
    }
}
相关推荐
Code blocks1 小时前
关于“LoggerFactory is not a Logback LoggerContext but Logback is on ......“的解决方案
java·spring boot·后端
04Koi.3 小时前
八股训练--Spring
java·后端·spring
Dcs4 小时前
微软 Copilot 被“越狱”?安全研究员教你一招拿下“沙箱环境 Root 权限”!
java
℡余晖^4 小时前
每日面试题18:基本数据类型和引用数据类型的区别
java
熬了夜的程序员5 小时前
【华为机试】34. 在排序数组中查找元素的第一个和最后一个位置
数据结构·算法·华为od·华为·面试·golang
hello 早上好5 小时前
消息顺序、消息重复问题
java·中间件
phltxy5 小时前
ArrayList与顺序表
java·算法
Doris_LMS5 小时前
保姆级别IDEA关联数据库方式、在IDEA中进行数据库的可视化操作(包含图解过程)
java·mysql·postgresql
衍生星球5 小时前
JSP 程序设计之 Web 技术基础
java·开发语言·jsp
Java编程乐园6 小时前
Java函数式编程之【Stream终止操作】【下】【三】【收集操作collect()与分组分区】【下游收集器】
java