BISHI69 [HNOI2008]越狱

这个问题可以通过计算"总方案数"减去"不越狱方案数"来得出结果。

总分配方案数 :

每个房间有 M M M 种宗教选择,共有 N N N 个房间。

总数 = M × M × ⋯ × M = M N M \times M \times \dots \times M = M^N M×M×⋯×M=MN。

不越狱方案数 :

第 1 个房间有 M M M 种选择;

第 2 个房间为了不与第 1 个重复,有 M − 1 M-1 M−1 种选择;

第 3 个房间为了不与第 2 个重复,有 M − 1 M-1 M−1 种选择;

以此类推,剩下的 N − 1 N-1 N−1 个房间每个都有 M − 1 M-1 M−1 种选择。

不越狱总数 = M × ( M − 1 ) N − 1 M \times (M-1)^{N-1} M×(M−1)N−1。

可能发生越狱的方案数 :

越狱方案 = 总方案数 - 不越狱方案数
结果 = M N − M × ( M − 1 ) N − 1 M^N - M \times (M-1)^{N-1} MN−M×(M−1)N−1

流程图

代码实现

java 复制代码
 private static final long MOD = 100003L;

    public static void main(String[] args) throws IOException {
        // 使用BufferedReader读取输入,PrintWriter输出结果
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        PrintWriter out = new PrintWriter(new OutputStreamWriter(System.out));

        String[] str = br.readLine().split("\\s+");
        long M = Long.parseLong(str[0]);
        long N = Long.parseLong(str[1]);
        long total = mypower(M, N, MOD);
        long safe = M * mypower(M - 1, N - 1, MOD)%MOD;
        long ans = (total-safe+MOD)%MOD;

        out.println(ans);

        out.flush();
        out.close();
        br.close();
    }

    private static long mypower(long base, long exp, long mod) {

        long ans = 1 % mod;
        while (exp > 0) {

            if (exp % 2 == 1) {
                ans = (ans * base) % mod;
            }

            base = (base * base) % mod;
            exp /= 2;
        }

        return ans;
    }
相关推荐
众链网络8 小时前
年卡跨淡旺季的有效期模型:不可用日期、次数与顺延规则
java·前端·数据库
文丑颜不良啊8 小时前
LeetCode926~950题目解析
java·leetcode
今天的砖头有点烫手啊8 小时前
Java 对象内存布局:压缩指针、对齐填充与 JOL 实测
java·jvm
devilnumber8 小时前
Lambda 表达式(Java)优缺点清晰分析
java·开发语言·python
时空节拍AI数字人8 小时前
博物馆数字人讲解系统设计:知识库 schema、展项联动协议与时序控制
java·服务器·前端·人工智能·ai·语音识别
蒲公英内测分发8 小时前
智能家居厂商有多个产品线,包装上的 App 下载入口该共用还是分开?
android·人工智能·数码相机·机器人·智能家居·智能硬件
GG.WinGel9 小时前
三元组中心问题
java·数据结构·算法·青少年编程·蓝桥杯
vailee9 小时前
42 万字符的工具输出压进 6,945 token:Agent 长会话的上下文治理实践
java·大数据·人工智能·prompt工程·rag·上下文管理
开开心心就好9 小时前
电脑小说阅读器,支持朗读和自定义皮肤
服务器·开发语言·javascript·算法·pdf·c#·音视频
weixin_448771729 小时前
Spring框架之ConfigurableApplicationContext源码学习
java·spring