【第9题】容斥原理:P3197 [HNOI2008]越狱

news/2025/2/13 2:26:54/

题目:P3197 [HNOI2008]越狱

题目原文请移步下面的链接

  • https://www.luogu.com.cn/problem/P3197
    • 参考题解:https://www.luogu.com.cn/problem/solution/P3197
  • 标签:OI数学容斥

题解

思路

  • 第一点:排列组合的问题,根据题意可以推导出来 s o l v e = m n − m ∗ ( m − 1 ) n − 1 solve = m^n−m∗(m−1)^{n−1} solve=mnm(m1)n1
  • 第二点:快速幂(快速幂是我的盲区知识点,所以第一版代码TLE)

代码(没使用快速幂,TLE)

#include <bits/stdc++.h>
using namespace std;
const long long mod = 100003;void best_coder() {long long n, m, t, a;scanf("%lld%lld", &m, &n);t = m;a = m - 1;for (long long i = 1; i < n; ++i) {m %= mod;m *= t;m %= mod;}for (long long i = 1; i < n; ++i) {t %= mod;t *= a;t %= mod;}printf("%lld", (m - t + mod) % mod);
}void happy_coder() {
}int main() {// 提升cin、cout效率ios::sync_with_stdio(false);cin.tie(nullptr);cout.tie(nullptr);// 小码匠best_coder();// 最优解// happy_coder();// 返回return 0;
}

AC代码

#include <bits/stdc++.h>
using namespace std;
const long long mod = 100003;long long binpow(long long a, long long b) {long long res = 1;while (b > 0) {if (b & 1) {res = res * a;res %= mod;}a *= a;a %= mod;b >>= 1;}return res % mod;
}void best_coder() {long long n, m;scanf("%lld%lld", &m, &n);long long solve = binpow(m, n) - (m * binpow(m - 1, n - 1)) % mod + mod;printf("%lld", solve % mod);
}void happy_coder() {
}int main() {// 提升cin、cout效率ios::sync_with_stdio(false);cin.tie(nullptr);cout.tie(nullptr);// 小码匠best_coder();// 最优解// happy_coder();// 返回return 0;
}

http://www.ppmy.cn/news/384688.html

相关文章

怎么快速给需要的网路标记颜色?

引入 我们在走线的时候&#xff0c;需要知道那些类型的线需要先走&#xff0c;接下来又要走那些类型的线&#xff0c;然后依次走完&#xff0c;如果在团队中&#xff0c;这一类型的线分配给这个人走&#xff0c;哪一类型的线有分配给那个人走。而在不管是那单个人&#xff0c;还…

单片机按键开机检测

POWER通过单片机的IO口控制&#xff0c;按键按下口单片机供电上电&#xff0c;单片机控制POWER引脚置高&#xff0c;维持自身供电。

MIT6.024学习笔记(三)——图论(2)

科学是使人变得勇敢的最好途径。——布鲁诺 文章目录 通信网络问题二叉树型直径路由器规模路由器数量拥挤程度 二维数组型直径路由器规模路由器数量拥挤程度 蝴蝶型直径路由器规模路由器数量拥挤程度 benes型直径路由器规模路由器数量拥挤 通信网络问题 在通信网络中&#xff…

vue可复用性

mixin混入 合并规则 data在内部会进行递归合并&#xff0c;并在发生冲突时以组件数据优先。值为对象的选项&#xff0c;例如 methods、components 和 directives&#xff0c;将被合并为同一个对象。两个对象键名冲突时以组件数据优先。同名生命周期函数将合并为一个数组&…

应用 Python PyAutoGUI 打造专属按键精灵脚本工具!

很久没有水文章了&#xff0c;很多老哥估计已经忘记本渣渣了吧&#xff0c;挤时间抽空水一篇&#xff0c;当然是以前写的&#xff0c;同时也有在用的工具脚本&#xff0c;大佬哥们可以跳过了&#xff01; 按键精灵&#xff0c;这样一款工具相信不少人有了解过&#xff0c;乃至用…

matlab句柄函数使用

概述 在MATLAB平台中&#xff0c;对函数的调用方法分为直接调用法和间接调用法。 直接调用函数&#xff0c;被调用的函数通常被称为子函数。但是子函数只能被与其M文件同名的主函数或在M文件中的其他函数所调用&#xff0c;一个文件中只能有一个主函数。 >> str hello…

按键精灵——基本

定义变量 Dim a1 定义常量 Const MyName123456 “按键精灵” 在脚本信息区输出 TracePrint 1∥结果为1 连接运算符& 1 & 1∥结果为11 “按键精灵” & 9∥结果为按键精灵9 转换 CInt 短整型 CLng 长整型 格式&#xff1a;bCInt&#xff08;a&#xff09; CDbI 双…