牛客网NC78-20.7.22-快速幂?

7-87 计算N^N (20分) 快速幂取模 给出一个整数N,输出N^N(N的N次方)的十进制表示的值,如果这个值超过了214748364,就求结果对214748364的余数。 输入格式: 一个整数T,代表输入数据组数。接下来T行每行一个整数N(1 <= N <= 10^9)。 输出格式: 输出N^N对214748364的余数 输入样例: 2 2 3 输出样例: 4 27 快速幂取模快速算法详解 这个博主讲的很详细: http... 阅读详情

链接:牛客网NC78
题意:定义f(x) = xa+ x(a+1) +…+ x(b-1) + xb,然后在给定a和b的情况下,求f(x)%10000000033的值。
输入:第一行a,b,x, 其中0<=x,a,b<=1e9, 且 a<=b
输出:f(x)%10000000033的值
分析:首先想到等比数列公式,得
    f(x)=(xb+1-xa)/(x-1)
但是不行,想想看,因为
    ab%mod=(a%mod)(b%mod)
所以对于幂和乘法可以逐步取余,但除法?。。不会搞。
看了别人的说明,使用费马小定理(如果p是一个质数,而整数x不是p的倍数,即是:

x(p-1)%p=1  ⇒ \Rightarrow ⇒ (x*x(p-2))%p=1
           ⇓ \Downarrow ⇓
   (x%mod) *(x(p-2)%p)=1,

x%mod和x(p-2)%p互为逆元,又因为mod=10000000033是质数,且x不可能是它的质数则
f(x)=(xb+1-xa)/(x-1)%mod
=(xb+1-xa) %mod * (1/(x-1))%mod
=(xb+1-xa) %mod * (x-1)(mod-2)%mod
这样就可以求f(x)了。
为了不超时,用快速幂,快速乘法。
思路:如分析,另外,0和1的时候要特判,1我知道是求(x-1)(mod-2)%mod的时候会得到零从而结果为0不符题意,0的话我不知道,按道理应该没问题,(xb+1-xa) %mod为0,(x-1)(mod-2)%mod随便得到一个数,结果依然为0,莫非是数据的问题?多希望有人给我说说为啥,wx GREAT-LIFE-21,难受.
代码:

import java.util.*;

public class Solution {
    /**
     * 
     * @param a int整型 
     * @param b int整型 
     * @param n int整型 
     * @return long长整型
     */
    private static long Mod=10000000033L;
    private static long qm(long a,long b){
        long ans=0;
        while(b!=0){
            if(b%2==1){
                ans=ans+a;
                if(ans>=Mod)ans-=Mod;
            }
            a<<=1;
            if(a>=Mod)a-=Mod;
            b>>=1;
        }
        return ans;
    }
    private static long qq(long a,long b){
        long ans=1;
        while(b!=0){
            if(b%2==1){
                if(ans<a){
                   ans=qm(a,ans);
                }
                else ans=qm(ans,a);
            }
            a=qm(a,a);
            b>>=1;
        }
        return ans;
    }
    public long solve (int a, int b, int n) {
        // write code here
        if(n==0)return 0;
        if(n==1)return b-a+1;
        long ans=(qq(n,b+1)-qq(n,a)+Mod)%Mod;
        long hh=qq(n-1,Mod-2);
        return qm(ans,hh);
    }
}
`


gem5 run parsec2.1 ---- 亲测跑通教程 使用gem5模拟仿真parsec2.1,排除了各种bug,成功跑通,亲测有效!!! 阅读详情

相关推荐

【基于51】红外寻迹智能小车 - 代码篇

这是一个基于C51单片机的红外巡线智能小车,是一个适合嵌入式单片机、C语言初学者练习的小Demo,文章提供完整的项目思路、免费的源代码。

ZER00000001的博客 3万+

7-1 斐波那契数列(III) (20 分)(快速矩阵幂)

目录题目详情题解重要思想完整代码 题目详情 题解 快速矩阵幂与斐波那契相结合,关系如下: 以[f(1), f(0)]为基准,f(1) = 1, f(0) = 0,所以矩阵幂得出的结果矩阵,只要第一项乘以f(1),即为其本身即可。 重要思想 普通快速幂代码,求a^n(二分法) int res = 1; while(n > 0) { if(n % 2) res *= a; a = a * a; n /= 2; } 矩阵快速幂 矩阵快速幂,res就变

wsad0zxcvbnm的博客 1740

Cadence Allegro PCB文件对比实战:3分钟搞定两份设计差异(附颜色标注技巧)

本文详细介绍了如何高效使用Cadence Allegro的Design Compare功能进行PCB文件差异对比。通过实战工作流,可在3分钟内精准定位并理解两份设计在布局、布线、元件等方面的关键差异,并分享了自定义颜色标注技巧,帮助工程师快速聚焦重要修改,提升设计评审与团队协作效率。

weixin_29248653的博客 379

牛客网NC81-20.7.20(快速幂?)

题意:有n个人,排成一排,给一个数组a, a[i]代表第i个人左右两边的人的差值,问有多少种排法。 输入:人数n,差值数组a[] (1<=n<=1e6,0<=a[i]<=1e6) 输出:排法数mod(1e9+7) 分析: 若n为奇数:除了中间一个是0,以中间为分界,差值对称且是每次加2的偶数,例:6、4、2、0、2、4、6。 若n为偶数:以中间为分界,差值对称且是每次加2的奇数,例:5、3、1、1、3、5 本来除了n为奇数时中间一个人没得选,其他时候对于每个人来说都有两个位置选,所以

RedDevill的博客 152

深度学习与神经网络有什么区别

人工神经网络(ArtificialNeuralNetwork,即ANN)是从信息处理角度对人脑神经元网络进行抽象,是20世纪80年代以来人工智能领域兴起的研究热点,其本质是一种运算模型,由大量的节点(或称神经元)之间相互联接构成,在模式识别、智能机器人、自动控制、生物、医学、经济等领域已成功地解决了许多现代计算机难以解决的实际问题,表现出了良好的智能特性。...

super67269的博客 8488

Windows下QT5.15.2安装MQTT模块全攻略(附分支选择避坑指南)

本文详细介绍了在Windows环境下为QT5.15.2安装MQTT模块的完整流程,包括环境准备、源码获取、编译配置及项目集成等关键步骤。特别针对分支选择、依赖项处理和常见错误提供了实用解决方案,帮助开发者高效完成MQTT模块的安装与调试,适用于物联网开发场景。

weixin_29224589的博客 466

0动态规划中等 牛客NC.127最长公共子串

NC.127最长公共子串 题目描述 给定两个字符串str1和str2,输出两个字符串的最长公共子串,如果最长公共子串为空,输出-1。 示例1 输入"1AB2345CD",“12345EF” 返回值"2345" 思路 以两个字符串的长度建立一个二维数组(如下图),遍历两个字符串。 dp[i][j]表示以str1第i个字符结尾和以str2第j个字符结尾的最长公共子串 dp[i][j]在dp[i-1][j-1]得到 import java.util.*; public class Solution {

31楼下小黑的博客 180

华为MetaERP国资委语境下的 DRP(全域数字化资源管理平台/Digitalized Resource-management Platform)与传统 ERP(以 SAP、Oracle 为代表)的

【摘要】国资委推动的DRP(全域数字化资源管理平台)正在重构央国企数智化转型路径,其本质是通过"ERP管交易+DRP管管控"的双层架构实现升维替代。与传统ERP相比,DRP具有三大突破:采用国产分布式数据库实现全级次穿透监管、构建数据中台打破信息孤岛、以实时分析替代事后报表。当前政策明确2026-2030年分阶段建设目标,这将重塑产业格局——倒逼传统ERP厂商转型,为云原生/AI/信创企业创造新机遇。需注意DRP并非简单替代ERP,而是通过治理模式变革实现"交易系统做薄、管控中

金牌架构师 286

矩阵幂

题目描述: 给定一个n*n的矩阵,求该矩阵的k次幂,即P^k。 输入描述: 第一行:两个整数n(2<=n<=10)、k(1<=k<=5),两个数字之间用一个空格隔开,含义如上所示。 接下来有n行,每行n个正整数,其中,第i行第j个整数表示矩阵中第i行第j列的矩阵元素Pij且(0<=Pij<=10)。另外,数据保证最后结果不会超过10^8。 输出描述: 对于每组测试数据,输出其结果。格式为: n行n列个整数,每行数之间用空格隔开,注意,每行最后一个数后面不应该有多余的空格。

Lassi的博客 257

8、 使用TPM密钥:从理论到实践的全面指南

本文全面介绍了如何使用TPM(可信平台模块)进行密钥管理,涵盖密钥的创建、存储、加载、迁移以及特殊密钥类型的使用。通过详细的操作步骤和代码示例,帮助读者掌握TPM密钥管理技术,确保系统的安全性和可靠性。

weixin_36212459的博客 242

【图像去噪】论文复现:灵感源自MAE!进一步解决BSN的局限性,破坏真实噪声的空间相关性!AMSNet的Pytorch源码复现,跑通源码,原理详解!

论文题目:Asymmetric Mask Scheme for Self-Supervised Real Image Denoising —— 自监督真实图像去噪的非对称掩码方案【图像去噪】论文精读:Asymmetric Mask Scheme for Self-Supervised Real Image Denoising(AMSNet)AMSNet是基于PyTorch Lightning CLI深度学习框架编写的,比较适合复杂的大型任务,复用很方便,但是安装和环境配置问题太多。

主要更新底层视觉(去噪、超分等)相关的科研内容,形式为【论文精读】+【论文复现】 546

NC23046 华华教月月做数学 快速幂 __int128

链接:https://ac.nowcoder.com/acm/problem/23046 来源:牛客网 找到了心仪的小姐姐月月后,华华很高兴的和她聊着天。然而月月的作业很多,不能继续陪华华聊天了。华华为了尽快和月月继续聊天,就提出帮她做一部分作业。 月月的其中一项作业是:给定正整数A、B、P,求ABmod  PA^B\mod PABmodP的值。华华觉得这实在是毫无意义,所以决定写一个程序来做。但是华华并不会写程序,所以这个任务就交给你了。 因为月月的作业很多,所以有T组询问。 输入描述: 第一行一个正整数

马角的逆袭的博客 301

《UDS协议从入门到精通》系列——图解0x19:读取故障码信息

认识最核心的诊断服务“0x19”!!全网最强图解!一文搞懂所有常用子服务!

车载系统攻城狮 1万+

【筛法,思维,数学】牛客比赛NC210203I 牛牛的质因数

链接:https://ac.nowcoder.com/acm/contest/9982/I 来源:牛客网 一、题目简介 牛牛最近对于质因数分解产生了浓厚的兴趣。 牛牛定义了一个函数F(x),它表示将x做质因数分解后得到的数字从小到大升序排列,然后将其“拼接”成一个大整数。 例如1500=22355*5,F(1500)=223555。 牛牛现在想要知道∑ F(i)的值。 由于这个结果非常大,所以你只用告诉牛牛最终答案对10^9+7取余数的结果即可。 输入描述: 仅一行一个正整数n(2≤n≤4×10^6) 输出

qq_50165143的博客 226

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

牛客网在线编程全部题目

牛客网在线编程题目

feiyan的博客 3034

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

【每日一题一期】日常算法题题集

每日一题一期题单链接:Click Here 每道题的题解会由博主做完以后总结然后发布的 时间 题号 题解 来源 算法备注 3月25日 NC50439 村人B 牛客练习赛50-C 优先队列 + 排序 3月26日 NC13230 村人B 美团2017年CodeM大赛-初赛A轮 区间DP,区间DP小结 3月27日 NC15553 村人B,满天星 2018年长沙理工大学程序设计...

橘嘉禾 82

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

序列求和(逆元)

来源:牛客网题号:NC15950

Skyniliuershang的博客 352

基础算法2 (快速幂 二分)

A - Pseudoprime numbersB - Raising Modulo NumbersC - Key SetD - Distribution moneyE - Rightmost DigitF - 人见人爱A^BG - Trailing Zeroes (III)H - PieI - Can you solve this equation?J - Subsequence A - Pseudoprime numbers Fermat’s theorem states that for any p.

LinX的博客 795

牛客网NC69-20.7.25-二分

链接:牛客网NC69 题意: 输入:n,k,a[] (1≤k≤n≤1e5,0≤ai≤1e4) 输出:不同分段方法最小值中的最大值 分析:最小值是其他分段方法的最大值的分段方法是让这些数每个分段的和尽可能的平均,而我们就来对这个"平均值"进行二分,而这个"平均值”也就是要输出的值,“平均值”的范围是【min(a),sum(a)],即是a中元素的最小值与a中元素的和之间。 思路:二分,注意判断临界条件。 代码: import java.util.*; public class Solution {

RedDevill的博客 574

快速幂运算

快速幂运算 分数 1/1 + 1/2 +1/4 +1/8 +1/16 +. . . 每项是前一项的一半,如果一共有20项, 求这个和是多少,结果用分数表示出来。 类似:3/2 当然这只是加了前两项而已。分子分母要求互质。 注意需要提交的是已经约分过的分数,中间任何位置不能含有空格。 请不要填写多余的文字或符号。 /** 左移2的幂次方 #include<stdio.h> int main(){ printf("%ld/%ld",1<<20+1,1<<19); ret

qq_45896330的博客 8722

牛客网996A快速幂

【题目】 链接:https://ac.nowcoder.com/acm/contest/996/A 来源:牛客网 【代码】 #include<iostream> using namespace std; int main(){ long long a,b,p; cin>>a>>b>>p; long long ans=1; while(b){ if(b&1==1){ ans=ans*

wuyu_1016的博客 540

PTA 7-87 计算N^N (20分)(快速幂

7-87 计算N^N (20分) 给出一个整数N,输出N^N(N的N次方)的十进制表示的值,如果这个值超过了214748364,就求结果对214748364的余数。 输入格式: 一个整数T,代表输入数据组数。接下来T行每行一个整数N(1 <= N <= 10^9)。 输出格式: 输出N^N对214748364的余数 输入样例: 2 2 3 输出样例: 4 27 作者 jzfan 单位 阜阳师范大学 代码长度限制 16 KB 时间限制 1000 ms 内存限制 64 MB #include<

我见青山多妩媚,料青山见我应如是 955

牛牛的函数

目录牛牛的函数示例解 牛牛的函数 定义函数 f(x) = x^a + x^(a+1) +…+ x^(b-1) + x^b,然后在给定a和b的情况下,求f(x)%10000000033的值。 示例 输入 1,3,2 输出 14 说明 f(2) = 2^1 + 2^2 + 2^3 = 14 备注 其中0<=x,a,b<=1e9, 且 a<=b 解 f(n) = na + na+1 + … + nb-1 + nb nf(n) = na+1 + na+2 + … + nb + n

wojiaojd的博客 630

【快速幂】牛客 求root(N,k)

题目描述     N&lt;k时,root(N,k) = N,否则,root(N,k) = root(N',k)。N'为N的k进制表示的各位数字之和。输入x,y,k,输出root(x^y,k)的值 (这里^为乘方,不是异或),2=&lt;k&lt;=16,0&lt;x,y&lt;2000000000,有一半的测试点里 x^y 会溢出int的范围(&gt;=2000000000)  输入描述: ...

努力努力再努力0.0的博客 314

牛客网NC14399-素数判断(Java)

import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.PrintWriter; import java.util.ArrayList; public class Main { public static void main(String[] args) { PrintWriter out=new PrintWriter(System.o.

qq_41373751的博客 322

【模板】7 快速幂||取余运算

#include<iostream> #include<cstdio> using namespace std; long long int b,p,k,ans,base; int main() { cin>>b>>p>>k; base=b; long long int pp=p;...

a5666688的博客 181
上一篇: 牛客网NC80-20.7.21-栈?
下一篇: 牛客网NC77-20.7.23-dp(动态规划?)
RedDevill
博客等级 码龄8年 2粉丝 54原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值