首页 > 其他 > 详细

幸运的袋子, 网易笔试题

时间:2020-06-23 14:23:21      阅读:69      评论:0      收藏:0      [点我收藏+]

排序+深搜+剪枝

import java.util.*;
public class Main {
    static int dfs(int[] a, int n, int u, long sum, long pi) {
        int res = 0;
        for(int i=u; i < n; i++) {
            if(sum+a[i] > pi*a[i]) {
                res ++;
                res += dfs(a, n, i+1, sum+a[i], pi*a[i]);
            } else if(a[i] == 1) {
                res += dfs(a, n, i+1, sum+a[i], pi*a[i]);
            } else  break;
            while(i < n-1 && a[i] == a[i+1]) i++;
        }
        return res;
    }
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        int[] a = new int[n];
        for(int i=0; i < n; i++) { a[i] = sc.nextInt();}
        Arrays.sort(a);
        int res = dfs(a,n, 0, 0L, 1L);
        //int res = find(a, 0,0, 1);
        System.out.println(res);
    }
}

幸运的袋子, 网易笔试题

原文:https://www.cnblogs.com/lixyuan/p/13181557.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!