华为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;
        }
    }
}
相关推荐
booooooty17 分钟前
【Java项目设计】基于Springboot+Vue的OA办公自动化系统
java·vue.js·spring boot·毕业设计·课程设计·程序开发
白云如幻17 分钟前
【Java】HQL分页查询
java·hibernate
小猫咪怎么会有坏心思呢40 分钟前
华为OD机考-观看文艺汇演问题-区间问题(JAVA 2025B卷)
java·jvm
Java初学者小白1 小时前
秋招Day14 - MySQL - SQL优化
java·数据库·sql·mysql
Cyanto1 小时前
Tomcat双击startup.bat闪退的解决方法
java·tomcat
武昌库里写JAVA2 小时前
Vue状态管理实践:使用Vuex进行前端状态管理
java·vue.js·spring boot·课程设计·宠物管理
豆沙沙包?2 小时前
2025年- H83-Lc191--139.单词拆分(动态规划)--Java版
java·算法·动态规划
lovebugs2 小时前
百万并发下的生存之道:Java秒杀系统架构设计全解析
java·后端·架构
发仔1232 小时前
超硬核实战!用Java玩转Neo4j图数据库,轻松搞定复杂关系网!
java·数据库