数论 费马小定理+快速幂取模

2023-10-26

D - Sum
Time Limit:1000MS     Memory Limit:131072KB     64bit IO Format:%I64d & %I64u

Description

Input

2

Output

2

        
 
     
     
Hint
1. For N = 2, S(1) = S(2) = 1. 2. The input file consists of multiple test cases.

Sample Input

2

Sample Output

2

        
  

Hint

     
     
1. For N = 2, S(1) = S(2) = 1. 2. The input file consists of multiple test cases. 思路:
首先根据规律找出sum=2^(n-1),转化为求 2^(n-1)%mod
利用费马小定理a^b%c=a^(b%(c-1))%c
所以解决这个问题只需要两部
1.用大数取余求得(N-1)%mod-1
2.用快速幂求得a^b%mod
ac代码:
#include <iostream> #include <cstring> #include <cstdio> #define mod 1000000007 using namespace std; char a[10000005]; long long quickmod(long long  a, long long  b) {     long long ans=1;     while(b)     {         if(b&1)         {             ans=(ans*a)%mod;         }         b=b/2;         a=(a*a)%mod;     }     return ans; } int main() {     long long sum,len;     while(gets(a))     {         len=strlen(a);         sum=0;         for(int i=0;i<len;i++)         {             sum=(sum*10+a[i]-'0')%(mod-1);         }         if(sum==0)         cout<<quickmod(2,mod-2)<<endl;         else         {sum--;         cout<<quickmod(2,sum)<<endl;}     }     return 0; }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

数论 费马小定理+快速幂取模 的相关文章

  • Anaconda/jupyter notebook修改虚拟环境名称

    1 找到用户文件夹下的txt文件 比如C Users your username conda environments txt windows平台 找到当前主用户文件夹 有一个 conda文件夹 里面有一个environments txt文
  • 我的2012移动开发年度总结——革命的一年

    2012年 是我在移动行业畅游的一年 这一年发生了很多事 人生三大事之一结婚 评选csdn专家荣誉称号 坚持写博客写了一年 对手机这个行业总算有了个大体的认识 但是还有一些不顺人意的事 这里就不说了 但有一件事不得不说 在这家公司上班以来
  • QWidget尺寸限定

    1 控件只能在最小和最大之间进行调整 不能超过范围 直接宽高同时设置 window setMinimumSize 200 200 window setMaximumSize 500 500 app QApplication sys argv
  • unity3D游戏开发十之粒子系统

    Shuriken粒子系统是Unity3 5版本新推出的粒子系统 它采用模块化管理 个性化的粒子模块配合粒子曲线编辑器使用户更容易创作出各种缤纷复杂的粒子效果 依次打开菜单栏中的GameObject gt Greate Other gt Pa
  • win10 python如何安装requests———超详细教程

    第一步 先检查你的python安装路径下的Scripts文件里有没有东西 我一开始查看时发现竟然是空白的 去搜寻了答案 python安装文件中 Scripts文件夹中没有文件目录 空白 注 我只是操作了该教程中的第二步 在cmd中输入pyt
  • 区块链的核心:共识机制

    我在上一篇 区块链到底是怎么运行的 一文中 提到了 打包交易 和 广播交易 这两个概念 其实 以上谈到的两个内容正是区块链最核心的技术内容之一 共识机制 在今天的文章中 我们就展开聊一聊区块链共识机制到底是什么 以及区块链的共识过程到底是怎
  • 几种排序算法比较

    前言 排序是按照关键字的非递减或非递增顺序对一组记录重新进行排列的操作 是对无规律的一组序列转化为递增或递减的操作 排序的稳定性 当排序记录中的关键字都部相同时 则任何一个记录的无序序列经过排序后得到的结果都唯一 反之 若存在两个或多个关键
  • 如何进行测试微服务?

    在许多方面 测试微服务应用程序与测试使用任何其他体系结构构建的应用程序没有什么不同 微服务面临的独特挑战是组成应用程序的服务数量之多 以及服务之间的依赖关系数量 作为用于构建复杂系统的体系结构 微服务在开发社区中获得了巨大的关注 尽管人们开
  • 论文理解【IL - IRL】 —— Deep Reinforcement Learning from Human Preferences

    标题 Deep Reinforcement Learning from Human Preferences 文章链接 Deep Reinforcement Learning from Human Preferences blogpost L
  • 基于A*算法自动引导车的路径规划(Matlab代码实现)

    欢迎来到本博客 博主优势 博客内容尽量做到思维缜密 逻辑清晰 为了方便读者 座右铭 行百里者 半于九十 本文目录如下 1 概述 2 运行结果 3 参考文献 4 Matlab代码实现 1 概述 动汽车动力系统复杂 行驶工况多变 能耗管理是其研
  • ajax aftersuccess,Ajax jquery success scope

    问题 I have this ajax call to a doop php function doop var old this siblings old html var new this siblings new val ajax u
  • Java 的 Class 文件格式——解析魔数和版本号

    解析 Java 的 Class 文件格式 解析魔数和版本号 作者 陈跃峰 出自 http blog csdn net mailbomb 熟悉 Java 语言有好几年了 技术也学了一些 现在主要从事 J2ME 技术方面的工作 最近工作不是很忙
  • 小学老师工资多少一个月_教师一个月工资是多少? 全国各地教师工资一览

    教师 被誉为人类灵魂的工程师 一直以来教师工资改革都是民生很关注的问题 据获悉 目前中小学教师基本工资都将得到相应的提高 那么 教师一个月工资是多少呢 下面我们来看看全国各地教师工资一览表 教师一个月工资是多少 教师一个月工资是多少呢 全国
  • Python究竟是个啥?为什么985的学生都在学它?早就该曝光了

    现在网上一搜学Python能做什么 无一例外地全跳出来一堆的专业名词 看的时候虎躯一震 看完之后 依然不知道学会了能干啥 不知道大家是不是也有同样的感受 为了解决大家这种困惑 我今天特意花时间总结了一些学完Python能做的工作 力求用最通
  • 【算法】希尔排序C语言实现

    上一篇文章我们一起学习了直接插入排序 它的原理就是把前i个长度的序列变成有序序列 然后循环迭代 直至整个序列都变为有序的 但是说来说去它还是一个时间复杂度为 n 2 的算法 难道就不能再进一步把时间复杂度降低一阶么 可能有很多同学说快速排序
  • linux笔记-awk详解

    简介 awk是一个强大的文本分析工具 相对于grep的查找 sed的编辑 awk在其对数据分析并生成报告时 显得尤为强大 简单来说awk就是把文件逐行的读入 以空格为默认分隔符将每行切片 切开的部分再进行各种分析处理 awk有3个不同版本
  • 以太坊蜜罐智能合约分析

    0 00 前言 在学习区块链相关知识的过程中 拜读过一篇很好的文章 The phenomenon of smart contract honeypots 作者详细分析了他遇到的三种蜜罐智能合约 并将相关智能合约整理收集到Github项目sm
  • 0402自学web后端之——使用flask-mail发送邮件

    安装 gt gt gt pip3 install flask mail 设置环境变量 gt gt gt export MAIL USERNAME 发件邮箱地址 163 com gt gt gt export MAIL PASSWORD 发件
  • java项目利用launch4j生成可执行exe文件

    一 项目结构说明 参见文章 java项目打成可运行jar包 http mp blog csdn net postedit 79194671 二 操作流程 1 右键项目 gt export gt Runnable JAR File gt Ne
  • Nginx【反向代理负载均衡动静分离】--下

    Nginx 反向代理负载均衡动静分离 下 Nginx 工作机制 参数设置 master worker 机制 示意图 图解 一个master 管理多个worker 一说master worker 机制 争抢机制示意图 图解 一个master

随机推荐

  • 获取时间/时间戳,并比大小

    获取当前时间戳的几种方法 1 System currentTimeMillis 2 Calendar getInstance getTimeInMillis 3 new Date getTime 注 上面的获取时间戳值都是毫秒级的 返回的都
  • 微信公众号发送模板信息报错——invalid credential, access_token is invalid or not latest hints:

    这个大部分原因是access token不正确导致的 这个access token是微信开放文档 公众号 开始开发 获取Access Token下的获取access token获取的 而不是下面的微信网页开发 网页授权中获取access t
  • 等概率抽样——水塘抽样

    等概率抽样 水塘抽样 给出一个数据流 这个数据流的长度很大或者未知 并且对该数据流中数据只能访问一次 且不能使用额外的空间 请写出一个随机选择算法 使得数据流中所有数据被选中的概率相等 从头开始遍历数据 当遍历到第n个数据时 从0到n 1中
  • 使用Wireshark与Burp Suite分析HTTPS协议

    目录 目的 内容 器材 设备 元器件 步骤 1 虚拟机服务器搭建网站 本机访问用Burp Suite抓包获取头信息 2 Wireshark和Burp Suite处理HTTPS的过程与技术实现过程原理 1 Wireshark 2 Burp S
  • Spring Cloud五大组件

    Spring Cloud五大组件 Spring Cloud是分布式微服务架构的一站式解决方案 在Spring Boot基础上能够轻松搭建微服务系统的架构 现有Spring Cloud有两代实现 一代 Spring Cloud Netflix
  • SpringBoot(一)使用itelliJ社区版创建SpringBoot项目

    工欲善其事 必先利其器 要开发SpringBoot项目 首先就是选择一款合适的开发工具 目前市面上有很多优秀的开发工具 例如 IntelliJ IDEA Visual Studio Code 和 Eclipse 等 那么我们该如何选择呢 最
  • 17 Redis缓存更新策略(缓存和数据库更新选择)

    1 先更新数据库 在更新缓存 会有异常 更新完Mysql 发生异常 redis还没有更新 导致redis的是旧数据 下次读取缓存读的是脏数据 2 先删除缓存 在更新数据库 1 缓存已经删了 mysql还在更新中 由于Mysql还在更新中 会
  • java类注释_Java注释,java类注释详解

    一个程序的可读性 关键点就在于注释 下面要给大家讲到的就是Java注释方面的知识 主要会介绍java类注释 类注释一般必须放在所有的 import 语句之后 类定义之前 主要声明该类可以做什么 以及创建者 创建日期 版本和包名等一些信息 下
  • VS2022编译调试FFmpeg

    Git 工具下载 安装直接选择好安装路径 直接下一步到安装完成 配置好工程目录 msvc为编译生成的目标文件的目录 source为源代码目录 进入source目录 通过Git下载FFmpeg git clone https github c
  • 设计模式(三)——装饰模式

    往期地址 设计模式 一 简单工厂模式 设计模式 二 策略模式 本期主题 讲解装饰模式 装饰模式 1 什么是装饰模式 2 实例 2 1 场景 2 2 代码 1 什么是装饰模式 装饰模式是一种结构型设计模式 可以把对象的特殊行为进行封装 从而为
  • ue4单选框设置

    奇怪的是 ue4只有多选框 原来合并了 Style FCoreStyle Get RadioButton 不多说了 放代码 先枚举几个 enum ERadioChoice Radio0 Radio1 Radio2 SHorizontalBo
  • steps_per_epoch=2000,epochs=100之间的区别

    第一种解释 batchsize 中文翻译为批大小 批尺寸 在深度学习中 一般采用SGD训练 即每次训练在训练集中取batchsize个样本训练 iteration 中文翻译为迭代 1个iteration等于使用batchsize个样本训练一
  • 小程序

    文章目录 新建项目并梳理项目结构 配置导航栏效果 配置 tabBar 效果 实现轮播图效果 获取轮播图数据 渲染轮播图页面效果 对轮播图进行美化 实现九宫格效果 获取九宫格数据 渲染九宫格布局 美化九宫格布局 实现图片布局 上拉触底案例 定
  • Lua判断一个对象是否为空,包含userdata

    Lua判断一个对象是否为空 客户端在开发游戏的时候 经常会遇到一个问题 C 传递过来的GameObject已经被销毁了 但是lua这边判断却不是nil 而是一个userdata 那怎么判断一个userdata是否为空呢 可以使用如下代码判断
  • SSH密码暴力破解

    SSH密码暴力破解 1 Hydra 海德拉 hydra 是世界顶级密码暴力密码破解工具 支持几乎所有协议的在线密码破解 功能强大 其密码能否被破解关键取决于破解字典是否足够强大 在网络安全渗透过程中是一款必备的测试工具 1 1指定用户破解
  • 数据结构自考

    设带头结点的单向循环链表的头指针为变量head 则空循环链表的判定条件是 head gt next head 一个具有n个顶点的无向完全图的边数为 n n 1 2 设某有向图有n个顶点 则改有向图对应的邻接表中的表头节点个数为n 若查找每个
  • 使用freemarker生成静态html文件

    一 引入依赖
  • 如何在家里赚钱,分享六个适合普通人长期可做的副业

    当今社会 压力越来越大 工作 家庭 生活等等 方方面面都需要钱 仅靠一份工作赚钱 已经很难满足我们的需求 所以越来越多的人尝试做副业 通过副业增加收入 让生活过得更幸福 常见的副业都是业余学一项技能 通过这项技能来赚钱 这是最保险的副业方式
  • 获取磁盘信息并扫描是否连接移动磁盘之JS版

    昨天弄了一天 扫描U盘是否连接到电脑 的功能 折腾了一天出了个java版和js版 这里记录下JS版本 先说说思路 从浏览器的地址栏打开网页之后 通过onload事件调用ActiveXObject判断U盘是否连接到电脑 若是连接了获取信息显示
  • 数论 费马小定理+快速幂取模

    D Sum Time Limit 1000MS Memory Limit 131072KB 64bit IO Format I64d I64u Submit Status Description Input 2 Output 2 Hint