信息学奥赛一本通 1618:越狱

2023-10-27

题目链接:http://ybt.ssoier.cn:8088/problem_show.php?pid=1618

思路:

总方案数为 m ∗ m ∗ … ∗ m = m n m*m*…*m=m^n mmm=mn

不发生越狱的方案数为 m ∗ ( m − 1 ) ∗ . . . ∗ ( m − 1 ) = m ∗ ( m − 1 ) n − 1 m*(m-1)*...*(m-1) = m*(m-1)^{n-1} m(m1)...(m1)=m(m1)n1

故发生越狱的方案数为 m n − m ∗ ( m − 1 ) n − 1 m^n-m*(m-1)^{n-1} mnm(m1)n1

对答案取余 ( m n − m ∗ ( m − 1 ) n − 1 )   %   m o d (m^n-m*(m-1)^{n-1}) \ \% \ mod (mnm(m1)n1) % mod,即 ( m n   %   m o d − m ∗ ( m − 1 ) n − 1   %   m o d )   %   m o d (m^n \ \% \ mod - m*(m-1)^{n-1} \ \% \ mod) \ \% \ mod (mn % modm(m1)n1 % mod) % mod

但是 m n   %   m o d m^n \ \% \ mod mn % mod 减去 m ∗ ( m − 1 ) n − 1   %   m o d m*(m-1)^{n-1} \ \% \ mod m(m1)n1 % mod 可能是负数,

所以还需要把负余数转换成正余数,即 ( m n   %   m o d − m ∗ ( m − 1 ) n − 1   %   m o d + m o d )   %   m o d (m^n \ \% \ mod - m*(m-1)^{n-1} \ \% \ mod + mod) \ \% \ mod (mn % modm(m1)n1 % mod+mod) % mod

#include <iostream>

using namespace std;

typedef long long ll;

const int mod = 100003;

int qmi(int a, ll b, int m)
{
    int res = 1;
    while (b)
    {
        if (b & 1) res = (ll)res * a % m;
        a = (ll)a * a % m;
        b >>= 1;
    }
    return res;
}

int main()
{
    int m;
    ll n;
    cin >> m >> n;
    
    cout << (qmi(m, n, mod) - (ll)m * qmi(m - 1, n - 1, mod) % mod + mod) % mod << endl;
    
    return 0;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

信息学奥赛一本通 1618:越狱 的相关文章

  • 无法在 QGLWidget 中设置所需的 OpenGL 版本

    我正在尝试在 Qt 4 8 2 中使用 QGLWidget 我注意到 QGLWidget 创建的默认上下文不显示 OpenGL 3 1 以上的任何输出 Qt wiki 有一个教程 http qt project org wiki How t
  • 为什么 std::vector 可以处理类定义中的不完整类型?

    出现了以下问题 C 标准似乎说 std vector需要一个完整的类型才能工作 看https en cppreference com w cpp container vector https en cppreference com w cp
  • 与 MinGW 的静态和动态/共享链接

    我想从一个简单的链接用法开始来解释我的问题 假设有一个图书馆z它可以编译为共享库 libz dll D libs z shared libz dll 或静态库 libz a D libs z static libz a 让我想要链接它 然后
  • CMake(Ninja 后端)使用 /MT 编译

    我有一个类似的问题CMake 使用 MT 而不是 MD 进行编译 https stackoverflow com questions 14172856 cmake compile with mt instead of md但有一些差异 我正
  • Visual Studio 2013 调试器显示 std::string 的奇怪值

    我有一个大型的 cmake 生成的解决方案 其中包含许多项目 由于某种原因 我无法查看字符串的内容 因为根据调试器 Bx Buf含有一些垃圾 text c str 正确返回 Hello 该问题不仅仅发生在本地字符串上 返回的函数std st
  • C# 结构默认值

    我有一个方法 它接受一个包含许多具有基本数据类型的字段的结构 我想传递大部分默认值 但需要进行一些调整 但我了解结构声明中的基本字段不能包含默认值声明 例如struct S int a 42 现在是这样的 OptionsStruct opt
  • 维护 VS Test Project 中单元测试方法之间的上下文

    我想按顺序运行以下单元测试 使用随机数字的名称 密码等创建新客户 检索刚刚创建的客户并断言其属性包含相同的随机数 对同一用户调用 ForgotPassword 函数 并使用相同的随机数作为用户名 清楚地看到 我需要生成一次随机数 并在 3
  • 重载算术运算符

    赋值运算符可以声明为 T 运算符 const t 在类中 但不能以这种方式定义算术运算符 它必须是友元函数 我不明白为什么 你能解释一下吗 算术运算符不必须是友元 那么你可以这样定义 MyClass MyClass operator con
  • 从图像创建半透明光标

    是否可以从图像创建光标并使其半透明 我目前正在拍摄自定义图像并覆盖鼠标光标图像 如果我可以将其设为半透明 那就太好了 但不是必需的 销售人员喜欢闪亮的 目前正在做这样的事情 Image cursorImage customImage Get
  • 注入包含接口的所有已注册实现的 Enumerable

    给出以下接口 public interface IMyProcessor void Process 我希望能够注册多个实现 并让我的 DI 容器将它们的可枚举注入到这样的类中 public class MyProcessorLibrary
  • main.cpp 是必需的吗?

    我试图编译一个程序cmake 我最终删除了我的main cpp文件 我刚刚将其复合到另一个包含我的项目名称的文件中 即 我刚刚将主函数剪切并粘贴到该文件中 问题是我有一个main cpp未发现错误 不确定是否在C 一个名为main cpp是
  • MINIX内部碎片2

    我正在用 C 语言编写一些软件 它递归地列出给定目录中的所有文件 现在我需要计算出内部碎片 我花了很长时间研究这个问题 发现 ext2 上的内部碎片只发生在最后一个块中 我知道理论上你应该能够从索引节点号获得第一个和最后一个块地址 但我不知
  • 将 AutomationID 与 ListView 结合使用

    我正在尝试将 AutomationId 附加到列表视图中的项目 理想情况下 将项目名称绑定到显示的项目
  • 运行实体框架自定义工具,它有什么作用?

    在 Visual Studio 中 当使用实体框架并为 tt 和 Context tt 文件应用运行自定义工具时 它是什么以及它有什么作用 为什么它解决数据库同步问题 有时 为什么我应该在运行 tt 之前运行它 Context tt 它被称
  • 在 clang 中向量化函数

    我正在尝试根据此用 clang 对以下函数进行矢量化铿锵参考 http llvm org docs Vectorizers html 它采用字节数组向量并根据以下条件应用掩码this RFC https www rfc editor org
  • 使用未命名命名空间而不是静态命名空间

    我可以假设在未命名命名空间中声明的对象相当于static namespace int x 1 static int x 2 FWIK 在这两种情况下 x将具有静态存储期限和内部链接 声明为的对象的所有规则也是如此static适用于未命名名称
  • 使用通用存储库模式和流畅的 nHibernate

    我目前正在开发一个中型应用程序 它将访问不同站点上的 2 个或更多 SQL 数据库等 我正在考虑使用类似的东西 http mikehadlow blogspot com 2008 03 using irepository pattern w
  • java有类似C#的属性吗? [复制]

    这个问题在这里已经有答案了 C 属性 我的意思是 get 和 set 方法 是一个非常有用的功能 java 也有类似 C 的属性吗 我的意思是我们如何在 java 中实现类似以下 C 代码的内容 public string Name get
  • NHibernate:无状态会话错误消息无法获取代理

    我正在使用 nHibernate 无状态会话来获取对象 更新一个属性并将对象保存回数据库 我不断收到错误消息 无状态会话无法获取代理 我在其他地方有类似的代码 所以我不明白为什么这不起作用 有谁知道问题可能是什么 我正在尝试更新Screen
  • 如何使用 Microsoft Graph API 更新 MailboxSettings

    我想从不同的日历更新邮箱设置 如何构建可以通过 Microsoft Graph 更新 MailboxSetting 的请求 这是我的代码示例 但有例外 代码示例 User obj GraphServiceClient Users roomC

随机推荐

  • 了解Hadoop输入输出系统

    与任何I O子系统不同 Hadoop还带有一组原语 这些原始的考虑因素虽然本质上是通用的 但与Hadoop IO系统一起也具有一些特殊的含义 Hadoop处理数TB的数据集 对这些原语的特殊考虑将使你了解Hadoop如何处理数据输入和输出
  • 华为、腾讯、阿里、网易员工下班时间大曝光,靠加班,你是赢不了他们的

    这年头 不加班都不好意思说自己是上班族的 但有一种行业的疯狂加班程度 已经逐渐成为加班领域的一颗新星 那就是 互联网行业从事者 也许你对华为 阿里的加班水平早有耳闻 但你是否见过他们疯狂加班的样子呢 首先出场的阿里巴巴 19 55 00 0
  • 生成10个随机数保存于数组中,并找出其最大值和最小值

    上代码吧 bin bash 生成19个随机数保存于数组中 并找出其最大值和最小值 declare a rand declare i max min for i in 0 9 do rand i RANDOM echo rand i if i
  • CTFHUB-WEB

    HTTP协议 题目 请求方式 思路一 我们知道http请求方式中没有CTFB方式 就想到CTFHUB 使用BP抓包 将原来的数据包请求方式GET改成CTFHUB 点击Forward 放包 得到flag 积累 HTTP协议的八种请求方式 1
  • 典型案例 3:十分钟搭建弹性可扩展的 Web API

    作者 萧起 阿里云云原生团队 导读 本节课程主要分为三个部分 基本概念中介绍基于函数计算的 WebAPI 与普通的 WebAPI 的区别及优势 开发流程中介绍如何在函数计算的控制台进行 WebAPI 的开发 操作演示中会实例演示函数计算 W
  • mysql-索引_MySQL-索引

    mysql 索引 MySQL 索引 MySQL INDEXES A database index is a data structure that improves the speed of operations in a table In
  • 基于MATLAB的图像复原视图分析技术

    基于MATLAB的图像复原视图分析技术 摘要 图像质量的好与坏受很多方面因素的影响 其中运动模糊以及失真是较为主要的因素 这些因素贯穿在图像获取 传输以及储存的全过程中 本次设计用到的是MATLAB软件然后进行仿真 对模糊图像建立退化模型
  • Spring系列文章:Spring事务

    一 事务简述 1 什么是事务 Transaction tx 在 个业务流程当中 通常需要多条DML insert delete update 语句共同联合才能完成 这 多条DML语句必须同时成功 或者同时失败 这样才能保证数据的安全 多条D
  • 单机redis和redisCluster集群获取所有key

    对于单机redis keys 对于redis cluster集群 redis cli c a CLUSTER AUTH cluster call CLUSTER IP CLUSTER POPRT keys 如 redis cli c clu
  • L1正则和L2正则的比较分析详解

    感受 上次有个面试官问我l1正则和l2正则有什么区别 当时把我给问傻了 于是就回来找了资料写了这篇博客 我参照的是英文博客 吸取别人的长处 希望能帮助大家 如有错误或者需要补充的 欢迎指正 咱们共同进步 范数 norm 数学上 范数是一个向
  • actuator--基础--6.2--端点解析--metrics端点

    actuator 基础 6 2 端点解析 metrics端点 代码位置 https gitee com DanShenGuiZu learnDemo tree master actuator learn actuator01 1 介绍 用于
  • Ubuntu更改默认python版本的两种方法 python-> Anaconda

    当你安装 Debian Linux 时 安装过程有可能同时为你提供多个可用的 Python 版本 因此系统中会存在多个 Python 的可执行二进制文件 你可以按照以下方法使用 ls 命令来查看你的系统中都有那些 Python 的二进制文件
  • 谷歌首页被360篡改

    打开浏览器后 右上角设置找到跳转到360的地址将其删除
  • 海明码校验【简单详细】

    海明码 1 什么是海明码 一个名叫Richard Hanming老爷爷在1950年提出的检验纠错方法 它具有一位纠错能力 2 海明码的计算方法 设欲检测的二进制代码为n位 K为检测位 提供纠错 总共n k位代码 当中检测位满足的关系 2 k
  • 将自己数据集转化为lmdb格式

    在caffe master github examples imagenet 路径下有convert imagenet sh文件 使用时有以下注意事项 注意点写在了代码注释里 usr bin env sh Create the imagen
  • Spring boot 日志框架

    SpringBoot能自动适配所有的日志 而且底层使用slf4j logback的方式记录日志 引入其他框架的时候 只需要 把这个框架依赖的日志框架排除掉即可
  • msvcr120.dll丢失怎样修复win11

    msvcr120 dll丢失怎样修复 相信这个问题困扰着不少小伙伴 msvcr120 dll是Windows系统中非常重要的组件 丢失或者损坏会导致很软件跟游戏无法打开运行 小编今天就把修复教程分享给大家 修复方法如下 首先打开电脑浏览器以
  • 1.pom.xml文件 - pom.xml说明

    史上最全的 pom xml 文件详解 史上最全的 pom xml 文件详解 雨雾清影的博客 CSDN博客 pom xml 参考 Maven的pom xml文件详解 Build Settings tomato 的博客 CSDN博客 pom中b
  • java 兔子生兔子

    标题 兔子生兔子 问题描述 假设一对兔子的成熟期是一个月 即一个月可长成成兔 那么 如果每对成兔每个月都生一对小兔 一对新生的小兔从第二个月起就开始生兔子 试问从一对兔子开始繁殖 以后每个月会有多少对兔子 题目要求 要求输入 输出格式中应包
  • 信息学奥赛一本通 1618:越狱

    题目链接 http ybt ssoier cn 8088 problem show php pid 1618 思路 总方案数为 m m m