2024年蓝桥杯Java B组省赛真题超详解析-最优分组

审题:混合、再消耗;取值、最小

汇总:关键:期望

基础:特殊情况

注意:稍微理解

复制代码
import java.util.ArrayList;
import java.util.Collections;
import java.util.Scanner;

public class Main {

    static int N, ans;
    static double p, min = Double.MAX_VALUE / 2; // min是可能的最小期望
    static ArrayList<Integer> factors = new ArrayList<>();

    // 计算不同K值对应的期望
    static double calculateExpected(int K) {
        if (K == 1) return N; // 每一个都检测,所以直接是N的消耗
        double probabilityAllNegative = Math.pow(1 - p, K);
        double expectedTestsPerGroup = probabilityAllNegative * 1 + (1 - probabilityAllNegative) * (1 + K);
        return expectedTestsPerGroup * ((double) N / K);
    }

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        N = sc.nextInt();
        p = sc.nextDouble();

        // 计算所有的约数K
        for (int i = 1; i <= Math.sqrt(N); i++) {
            if (N % i == 0) {
                factors.add(i);
                if (N / i != i) {
                    factors.add(N / i);
                }
            }
        }

        // 对K进行升序
        Collections.sort(factors);

        // 枚举所有可能的约数K,寻找最小期望对应的K
        for (int K : factors) {
            double currentExpected = calculateExpected(K);
            if (currentExpected < min) {
                ans = K;
                min = currentExpected;
            }
        }

        System.out.println(ans);
    }
}
相关推荐
阿狗童鞋2 小时前
SpringSecurity权限认证实战指南
java·后端·spring
Wang's Blog2 小时前
Java 项目部署之 Docker工具快速入门: 学习路径与命令速查导引
java·学习·docker
考研保研资料分享2 小时前
北大软微软件工程保研经验:哈工大面试追问与补录风险取舍
面试·职场和发展·软件工程
Wang's Blog2 小时前
Java 项目部署之 Docker工具快速入门: Docker 镜像仓库
java·docker
企智汇-项目管理软件2 小时前
离散制造管理系统怎么选?一套系统管住从研发到交付的全周期
java·人工智能·制造·项目经理·项目管理软件·项目管理系统·项目管理软件工程
IT研究室3 小时前
最新计算机毕业设计选题推荐-基于spring boot的幼儿园管理系统-网站-文档指导-Java-springboot
java·spring boot·课程设计
会编程的吕洞宾3 小时前
Spring Cloud Gateway限流实战 Redis令牌桶算法+熔断降级
java·后端·spring
yuanxi2003 小时前
长鑫科技4F架构突破:技术节点如何改写客户价值判断
职场和发展·创业创新·学习方法
Wang's Blog3 小时前
Java 项目部署之 Docker工具快速入门: DockerCompose 部署微服务集群
java·docker·微服务
BullSmall3 小时前
SonarQube 9.9.8-community 适配 Jenkins 版本说明
java·前端·jenkins