数数 (数学)(快速幂+同余定理)

uniapp:K线图,支持H5,APP K线,1分钟搞定。备注详细,无需理解,直接复制即可。 阅读详情
  1. 数数

【问题描述】
小 Star 还不会数数。有一天他看到了一张奇怪的数表,上面的每一个数各自都由相同数字构成,比如“11111111”“66666” 。于是他想自己从 1 慢慢数到这个数字。多少 Star 有个很不好的习惯,每数到一定个数就会从头开始数起。
现在请你帮忙求出,他最后数出来的数是多少。

【输入】
第一行一个整数 Q,表示数表上总共有多少个数;
以下 Q 行每行三个整数 x、n、p,表示这一次 Star 要数 n 个连续的 x,并且每数到 p 就归零。

【输出】
输出 Q 行,按顺序表示 Star 这一次数出来的数字是多少。

【输入输出样例】
count.in
3
8 5 3
3 3 1
5 3 4
count.out
1
0
3

数据范围

N 个 X 连在一起,这个数能不能直接表示出来?答案是肯定的,它等于(10^n- 1) / 9 * X。当 P 为质数时,显然 9 对模 P 有逆元,直接计算即可;若 P 不为质数,我们也只需要根据下式做一个小小的转化:
T / K % P = T % KP / K.
(证:T / K = sP + r,0 ≤ r < P,则 T = sPK + rK,0 ≤ rK < PK。 )
换言之,我们只要事先将 P 乘上 9,最终再把答案除以 9 就可以
解决不互质的情况了。
单组时间复杂度:O(logN)。

program mys;
var ii,i,j,k,m,q:longint;
ans,x,n,p,qq:int64;

function fa(x,n:int64):int64;
var t,y:int64;
begin 
t:=x; y:=1;
while n>0 do 
begin 
if n and 1=1 then 
y:=((y mod p)*(t mod p))mod p;
t:=((t mod p)*(t mod p)) mod p;
n:=n div 2;
end;
exit(y mod p);
end;

begin 
assign(input,'count.in'); reset(input);
assign(output,'count.out'); rewrite(output);
readln(q);
for ii:=1 to q do 
begin 
readln(x,n,p);
qq:=p;
p:=p*9;
ans:=fa(10,n)mod p;
ans:=x*(ans-1 mod p+p) mod p;
ans:=(ans div 9)mod qq;
writeln(ans mod qq);
end;
close(input); close(output);
end.

Kubernetes 集群升级与备份恢复:从 1.24 到 1.30 的平滑升级实战 详解 Kubernetes 集群版本升级流程(kubeadm 方式),包括前置检查、组件逐个升级、节点排水与恢复,同时演示 etcd 备份与集群灾难恢复方案。 阅读详情

相关推荐

cmu15445(2024fall) project 2

project 2比p1难度要更大,代码量更大且涉及的知识更多,实现中出现的bug更多,好在是最后全部解决了。我最大的收获在于对于多线程编程的理解更深入了,实际发现解决了多个多线程相关的bug,学会了更多多线程下debug的技巧方法,也见识了更多多线程的bug情况。在之后可以更系统的学习一下多线程编程。同时学会实现B+树也是需要掌握的基础。

Jerome_Yi的博客 1556

同余定理 + 快速幂

同余定理:(a*b)%c == ((a%c)*b)%c == ((a%c * b%c)%c   证明(前一种): (a*b - a%c*b )为c的 倍数即可 提取b得到 b(a-a%c) 易知其为 c的  倍数 ,得证           一、一般的幂次取余 (主要利用(a*b)%c == ((a%c)*b)%c)   ll normal_mod(ll a, ll b, ll c){...

Unyielding will 921

Overleaf+EndNote+BibTeX:手把手搞定Elsevier期刊投稿的参考文献格式(避坑指南)

本文详细介绍了如何利用Overleaf、EndNote和BibTeX三大工具无缝协作,解决Elsevier期刊投稿中的参考文献格式问题。从工具链配置、文献库导出、BibTeX文件优化到Overleaf集成与编译,提供全流程指南和常见问题解决方案,帮助学术新手高效完成Elsevier期刊投稿。

weixin_30616969的博客 509

poj3641Pseudoprime numbers(快速幂+同余定理)

poj3641Pseudoprime numbers Description Fermat's theorem states that for any prime number p and for any integer a > 1, ap = a (mod p). That is, if we raise a to the pth power and divide by p,

luckcircle的博客 386

保姆级教程:用Jetson Orin Nano和ROS2 Humble搞定PIXhawk 4飞控通信(含配置文件详解)

本文提供了一份详细的Jetson Orin Nano与PIXhawk 4飞控通信配置指南,涵盖硬件连接、ROS2 Humble环境搭建、MAVROS2配置及通信调试全流程。通过实战案例和配置文件详解,帮助开发者快速实现无人机上位机与飞控的稳定通信,适用于无人机开发与自动化控制场景。

weixin_33670786的博客 475

基于Matlab-Simulink的大林算法控制系统设计与振铃消除实验

本文详细介绍了基于Matlab-Simulink的大林算法控制系统设计与振铃消除实验。通过分析纯滞后系统的控制难题,探讨大林算法在工业控制中的应用优势,并提供Matlab-Simulink环境搭建、控制器D(z)设计、振铃消除及仿真实验的完整流程。文章还对比了大林算法与PID控制的性能差异,为工程实践提供参考。

dropout6artist的博客 795

同余定理

分三类:口诀套用,化余为一,其他 “差同减差,和同加和,余同取余,最小公倍加”这是同余问题的口诀。 所谓同余问题,就是给出“一个数除以几个不同的数”的余数,反求这个数,称作同余问题。 首先要对这几个不同的数的最小公倍数心中有数,下面以4、5、6为例,请记住它们的最小公倍数是60。 1、差同减差:用一个数除以几个不同的数,得到的余数,与除数的差相同, 此时反求的这个数,可以选除数的

u011514451的专栏 1万+

【学长笔记】点亮 STM32F411CEU6 板载 LED —— 入门级教程

本文提供了STM32F411CEU6开发板(Black Pill)点亮LED的完整教程。详细介绍了硬件信息(板载LED连接PC13,低电平有效)、CubeMX配置步骤(GPIO输出模式)、Keil5工程设置及完整代码实现(包含GPIO初始化和系统时钟配置)。教程还涵盖ST-Link下载器连接方法、程序下载步骤(需配合BOOT0按键操作)以及验证程序运行的方法。该教程特别适合STM32初学者,通过简单的LED闪烁示例快速入门STM32开发。

apple_53308981的博客 1319

【算法】同余定理及快速幂求模

文章目录定义及其性质大数的高精度对单精度取模快速幂取模(次方求模) 定义及其性质 定以 数论中的重要概念。给定一个正整数m,如果两个整数a和b满足a-b能够被m整除,即m/(a-b)得到一个整数,那么就称整数a与b对模m同余,记作a≡b(mod m)。对模m同余是整数的一个等价关系。 两个整数a、b,若它们除以整数m所得的余数相等,则称a与b对于模m同余或a同余于b模m。 性质 1.反身性:a≡a...

立志如山,行道如水 3585

基于逆向工程的中国裁判文书网爬虫技术深度解析

本文详细介绍了中国裁判文书网爬虫的开发过程,涵盖了从基础爬取到高级功能的完整解决方案。逆向工程分析:理解网站的反爬机制和加密逻辑浏览器自动化:使用Playwright模拟真实用户行为参数加密:通过JavaScript执行环境生成加密参数智能调度:控制请求频率,避免被检测错误处理:完善的异常处理和重试机制。

2201_76125261的博客 2145

手把手教你学Simulink——基于Simulink的CLLC谐振变换器双向对称控制

本文介绍了一种基于Simulink的CLLC谐振变换器双向对称控制方法。针对CLLC拓扑的多阶谐振特性,采用固定频率、50%占空比、仅调节相位差的对称控制策略,实现了宽电压范围调节和全负载ZVS软开关。详细阐述了Simulink建模步骤,包括功率级搭建、相位差生成逻辑和双向切换实现,并通过仿真验证了稳态性能和双向无缝切换能力。该方法解决了传统PFM控制的不足,具有控制简单、效率高、易于工程实现的优势,适用于车载充电和储能系统等双向功率应用场景。

MHD0815的博客 302

数学知识-快速幂

数学知识-快速幂

qq_64637770的博客 438

[QMT量化交易小白入门]-七、可转债双低策略Python代码详解与实战

本专栏主要是介绍QMT的基础用法,常见函数,写策略的方法,也会分享一些量化交易的思路,大概会写100篇左右。QMT的相关资料较少,在使用过程中不断的摸索,遇到了一些问题,记录下来和大家一起沟通,共同进步,自己淋过雨了,希望大家都有一把伞。

木头大左的博客 3839

牛客练习赛52 A:数数(快速幂)

https://ac.nowcoder.com/acm/contest/1084/A 链接:https://ac.nowcoder.com/acm/contest/1084/A 来源:牛客网 题目描述 “你已经是一个成熟的孩子了,要学会自己数数了!” 输入描述: 多组数据。 第一行一个数 T(1<=T<=5),表示测试数据组数。 接下来 T行,每行一个数 n(1...

442

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

牛客练习题52--数数

数学 交换求和

weixin_43319452的博客 519

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

数学专题(2)、快速幂

嗯,今天是快速幂专题。相信大家应该都会求幂,即求a^n.那么这个东西有什么可讲的呢?当然有!朴素的幂计算复杂度是O(n)的,而我们的快速幂则能够达到O(logn)级别。可能你会觉得线性复杂度已经够快了,但是在实际应用中,你就会发现快速幂的高效之处。那什么是快速幂呢?快速幂就是在计算a的b次方的时候,把b写成二进制和的形式。比如说计算a^43,我们就可以把43写成二进制数101011,每一位乘以对应...

Messhiro的博客 488

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

数论——数数(找质因数个数),三位出题人(组合数学,快速幂)

一个布尔类型的向量,用于标记整数是否为非素数。初始时假设所有的数都是素数(通过。的范围内,减去既是完全平方数又是某个数的整数次幂的数后剩余的数的个数。,可能是为了确保在处理数据时,数组或其他数据结构有足够的空间。:用于存储用户输入的整数,代表要进行计算的范围上限。这段代码的目的是计算在。

u014114223的博客 888

数数(数学题运算分配律)

这道题,你把每个写出来,可以发现可以提出来;然后直接预处理+快速幂就AC了: #include<cstdio> #include<iostream> using namespace std; const int Mod=998244353; long long qp(long long x,long long n){ long long res=1; while(...

qq_44555205的博客 782

【Gym - 102174I】 出给 paul-lu 的数数题 (计数)

出给 paul-lu 的数数题 题目大意:在一个n×nn\times nn×n的棋盘,每个格子可以填上范围为[1,k][1,k][1,k]的数字。如果一个点为good点,那么该点为其所在的行列中的唯一最大值。求所有情况中good点个数的平方的和,答案取模。 考虑两个点在哪些方案中有贡献。 之所以可以这样考虑,是因为可以将统计答案的方式拆解然后将循环前提。 如果两个点都为good点,那么有以下两种情...

lzh_naive的博客 233

牛客NC25457 数数 求和号化简 快速幂

官方题解 int n, m, Q, K, mod = 998244353; // int psum[MAXN], pmul[MAXN], ansA[MAXN], ansB[MAXN]; int dp[MAXN]; int fp(int a, int b) { int ret = 1; while(b) { if(b & 1) ret = (ret * a) % mod; a = a*a % mod; b >>= 1; } return ret; } sig..

马角的逆袭的博客 335

数数

考虑算这个式子令

大贝贝壳的博客 282

快速乘+快速幂+矩阵快速幂+素数筛

快速乘 引入:两个不超过 long long 的数 a、b 相乘,求对 p 取模后的结果 两个大数直接相乘会存在直接爆掉的情况 方法一:将乘法变成加法 在加法的过程,保证不会爆掉。 快速乘是将加法变得更高效 但偶数个相加时,如2*8=2+2+2+2+2+2+2+2 可以变成4+4+4+4(相加次数变为原来的一半) 再可以变成 8+8 这就大大的降低相加的次数 比如2*9 2*9=2+2+2+2...

ReverieZH的博客 340

矩阵快速幂

1.基础知识储备篇 矩阵的相关运算会再线性代数中学到。 1.1矩阵的定义:  N阶方阵(N阶矩阵):行数m与列数n相同的矩阵,如下图所示就是一个44的方阵:* 行矩阵(行向量):只有一行的矩阵,下图就是一个行矩阵: ​ 列矩阵(列向量):只有一列的矩阵,下图就是一个列矩阵: ​ 同型矩阵:设先有矩阵A和矩阵B,矩阵A的行数与列数和矩阵B的相同,则矩阵A、B是同型矩阵。 ​ 单位矩阵:在矩阵的乘法...

weixin_44482648的博客 204

【bzoj2326】【HNOI2011】【数学作业】

2326: [HNOI2011]数学作业Time Limit: 10 Sec Memory Limit: 128 MB Submit: 1264 Solved: 727 [Submit][Status][Discuss] Description 思路:其实很容易可以想到,当我们所要连接的数的位数不同的时候,我们需要把原来的数增大的倍数是不一样的。 所以我们需要分阶段来做矩乘。 根据数

Vampire 1486

整数快速幂与矩阵快速幂算法详解

转载自:https://www.cnblogs.com/cmmdc/p/6936196.html 以防链接失效以失去如此好的博客,故复制一份以防丢失。 矩阵快速幂基础讲解 1.基础知识储备篇 矩阵的相关运算会再线性代数中学到。1.1矩阵的定义:N阶方阵(N阶矩阵):行数m与列数n相同的矩阵,如下图所示就是一个44的方阵:* 行矩阵(行向量):只有一行的矩阵,下图就是一个行矩阵...

weixin_30746117的博客 199

小沙的数数(组合数学+位运算)

题面链接 https://ac.nowcoder.com/acm/contest/23477/H 思路 根据异或运算的性质我们能 代码 #include<bits/stdc++.h> using namespace std; //----------------�Զ��岿��---------------- #define ll long long #define mod 1000000007 #define endl "\n" #define PII pair<int,int>

小谢的博客 567
上一篇: 查错 (拓扑排序+堆维护)
下一篇: 破解石碑 (动态规划)
CodeOnce
博客等级 码龄10年 3粉丝 33原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值