BISHI53 [P1080] 国王游戏(简化版)


流程图

求解代码

java 复制代码
static class Minister{
        long a;
        long b;

        Minister(long a,long b){
            this.a = a;
            this.b = b;
        }
    }


    public static void main(String[] args) throws IOException{
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        PrintWriter out = new PrintWriter(new OutputStreamWriter(System.out));

        int n = Integer.parseInt(br.readLine().trim());

        String[] str = br.readLine().trim().split("\\s+");

        long a0 = Long.parseLong(str[0]);

        Minister[] ministers = new Minister[n];
        for(int i=0;i<n;i++){
            String[] ministerStr = br.readLine().trim().split("\\s+");
            long a = Long.parseLong(ministerStr[0]);
            long b = Long.parseLong(ministerStr[1]);

            ministers[i]=new Minister(a, b);

        }

        Arrays.sort(ministers,(x,y)->Long.compare(x.a*x.b, y.a*y.b));

        // 计算最大金币数
        long maxCoin = 0;
        long productA = a0; // 前序左手数的乘积(初始为国王的a0)
        for (Minister m : ministers) {
            // 当前大臣的金币数 = 前序乘积 / 当前b
            long coin = productA / m.b;
            // 更新最大金币数
            if (coin > maxCoin) {
                maxCoin = coin;
            }
            // 前序乘积 *= 当前大臣的a
            productA *= m.a;
        }

        out.println(maxCoin);
        out.flush();
        out.close();
        br.close();
    }
相关推荐
老赵全栈实战1 天前
【每日一技MyBatis trim标签核心用法
java·mybatis·orm
beata1 天前
Java基础-19:Java 死锁深度解析:从原理、检测到预防与实战指南
java·前端
吾日三省Java1 天前
Spring Cloud架构下的日志追踪:传统MDC vs 王炸SkyWalking
java·后端·架构
爱玩泥巴的小t1 天前
new Thread().start()底层做了什么?
java
码路飞1 天前
GPT-5.4 Computer Use 实战:3 步让 AI 操控浏览器帮你干活 🖥️
java·javascript
锋风1 天前
远程服务器运行Android Studio开发aosp源码
android
测试工坊1 天前
Android UI 卡顿量化——用数据回答"到底有多卡"
android
祈安_1 天前
Java实现循环队列、栈实现队列、队列实现栈
java·数据结构·算法
皮皮林5512 天前
拒绝写重复代码,试试这套开源的 SpringBoot 组件,效率翻倍~
java·spring boot
顺风尿一寸2 天前
从 Java NIO poll 到 Linux 内核 poll:一次系统调用的完整旅程
java