当前位置: 首页 > news >正文

题解:AT_arc172_e [ARC172E] Last 9 Digits

简要题意

对于给定正整数 \(X\),求出最小的正整数 \(n\),使其满足:

\[n^n \equiv X \pmod{10^9} \]

若没有输出 \(-1\)。保证 \(\gcd(X, 2) = 1\)\(\gcd(X, 5) = 1\)

分析

\(n\) 的上界达到 \(10^9-1\),直接枚举不太行。从模数下手,\(10^9 = 2^9 \cdot 5^9\)。思考一件事:\(2^9 = 512, 5^9 = 1953125\) 都不大,可以直接枚举,那我们能否分别求出模 \(2^9\)\(5^9\) 意义下的答案,然后合并呢?

手模 \(n^n\) 在模 \(2\) 意义下为 \(1, 0\) 循环,在模 \(5\) 意义下为 \(1, 4, 2, 1, 0, 1, 3, 1, 4, 0, 1, 1, 3, 1, 0, 1, 2, 4, 4, 0\) 循环(周期 \(20\))。能否推广到 \(2^9\)\(5^9\) 呢?

:::info[欧拉定理]
\(\gcd(a,m) = 1\),则 \(a^{\varphi(m)} \equiv 1 \pmod{m}\)

参考资料。
:::

性质一

\(a\) 为奇数时:

\[a^a \equiv (a+2^9)^{a+2^9} \pmod{2^9} \]

:::info[证明]

模意义下简化底数:

\[a \equiv a+2^9 \pmod{2^9} \]

欧拉定理简化指数:

\[\because \varphi(a^9) = 2^8, \therefore a^{2^8} \equiv 1 \pmod{2^9} \]

联立:

\[a^{a+2^9} = a^a \cdot a^{2^9} =a^a \cdot (a^{2^8})^2 \]

代入上式:

\[a^a \cdot (a^{2^8})^2 \equiv a^a \cdot 1 \pmod{2^9} \]

:::

性质二

\(\gcd(a, 5) = 1\) 时:

\[a^a \equiv (a+4 \cdot 5^9)^{a+4 \cdot 5^9} \pmod{5^9} \]

:::info[证明]
同样简化底数:

\[a \equiv a+4 \cdot 5^9 \pmod{5^9} \]

同样简化指数:

\[\because \varphi(5^9) = 4 \cdot 5^8, \therefore a^{4 \cdot 5^8} \equiv 1 \pmod{5^9} \]

联立:

\[a^{a+4 \cdot 5^9} = a^a \cdot a^{4 \cdot 5^9} =a^a \cdot (a^{4 \cdot 5^8})^5 \]

代入上式:

\[a^a \cdot (a^{4 \cdot 5^8})^5 \equiv a^a \cdot 1 \pmod{5^9} \]

:::

合并

找到 \(u,v\) 满足:

\[u^u \equiv n^n \pmod{2^9}, v^v \equiv n^n \pmod{5^9} \]

那么:

\[n = 2^9 \cdot k_1 +u = 4 \cdot 5^9 \cdot k_2 + v \]

复杂度

预处理暴力找完 \(1 \sim 2^9\)\(1 \sim 4 \cdot 5^9\) 的答案,大概做 \(10^7\) 次快速幂。

每次询问暴力枚举 \(k_2\),每次 \(2^7\) 次验证。

记录。然而 MX 的老爷机直接 TLE,爆零了 /ll。

Code

#include<bits/stdc++.h>
#define int long long
using namespace std;
const int N=2e6+5;
int qpow(int x,int y,int mod){int res=1;while(y){if(y&1)	res=res*x%mod;x=x*x%mod;y>>=1;}return res;
}
vector<signed> a1[N],a2[N];
signed main(){int m1=1,m2=1;for(int i=1;i<=9;i++)m1*=2,m2*=5;for(int i=1;i<m1;i++){if(i%2==0)	continue;int u=qpow(i,i,m1);a1[u].push_back(i);}for(int i=1;i<m2*4;i++){if(i%5==0)	continue;int u=qpow(i,i,m2);a2[u].push_back(i);}int T;cin>>T;while(T--){int x;cin>>x;assert(x%2&&x%5);int p=x%m1,q=x%m2,ans=1e9;for(int u:a1[p])for(int v:a2[q]){for(int i=0;i*(m2<<2)+v<1000000000;i++)if((i*(m2<<2)+v-u)%m1==0){ans=min(ans,i*(m2<<2)+v);break;}}cout<<ans<<'\n';}return 0;
}
http://www.jsqmd.com/news/878344/

相关文章:

  • 中小团队如何利用Taotoken实现多模型成本可控与统一管理
  • 2026 北京房屋漏水不用愁!雨中匠人免费上门检测,本地专业防水公司常年TOP1!卫生间免砸砖防水,快速解决您的烦恼。权威!靠谱!稳定!售后无忧!!! - 防水百科
  • IPSEC证书体系构建:从OpenSSL根CA到StrongSwan隧道实战
  • 基于Python + LLM的多智能体交响乐团:让AI组队协作的毕设系统设计与实现
  • Legacy iOS Kit:让旧款iPhone/iPad重获新生的终极指南
  • 2026年创作者应对AI挑战必备指南:用言笔AI一键降重,快速提升品质 - 降AI实验室
  • 卖包装薄膜怎么找客户?下游工厂在哪里
  • 3步解决AutoJs6在安卓11上的文件写入难题:终极权限配置指南
  • Windows服务器CredSSP与Sweet32漏洞协同修复实战指南
  • 2026年国产插入式电磁流量计厂家排行榜:十大品牌综合实力与选型深度解析 - 液体流量液位品牌推荐
  • 机器遗忘:从合规需求到技术实现,ROEL-TID框架如何平衡效率与精度
  • AI开发进阶④:Context Engineering深入——长上下文的真相与大坑
  • 对比直接使用原厂API,Taotoken在网站高并发场景下的稳定性体验
  • 信念网络与LSTM在工业物联网实时控制中的应用
  • 有限差分法:数值微分原理、误差分析与工程实践指南
  • 量子机器学习实战:比特编码、精确坐标更新与子网初始化
  • 卖塑料粒子怎么找客户?下游工厂在哪里
  • GPT-SoVITS终极指南:5秒克隆任何人的声音,免费快速上手AI语音克隆技术
  • 长文本推理失效?DeepSeek 128K上下文实测对比:3类典型场景下吞吐降级42%的根源与修复方案,
  • 5分钟上手Xournal++:跨平台手写笔记与PDF批注的最佳解决方案
  • 2026柳州金牌黄金回收门店指南:黄金 白银 铂金 彩金回收五家门店实测及联系方式推荐 - 亦辰小黄鸭
  • iPhone抓包全链路解析:从Burp配置到iOS证书信任
  • 百度网盘直链解析:终极免费提速解决方案
  • 电脑启动菜单里多一个系统?手把手教你用Diskpart和Dism命令搞定VHD启动(含常见错误排查)
  • 金融级日志不可篡改承诺如何兑现?DeepSeek审计日志的SM3+区块链存证双模架构(含FISCO BCOS对接实测数据)
  • 2026六安金牌黄金回收门店指南:黄金 白银 铂金 彩金回收五家门店实测及联系方式推荐 - 亦辰小黄鸭
  • 多芯片环形CTI网络编程挑战与优化实践
  • ATB:让 Transformer 推理快得像开了挂——昇腾算子加速库技术解析
  • Prompt Cache:别再为同样的 System Prompt 重算一遍
  • 2026六盘水金牌黄金回收门店指南:黄金 白银 铂金 彩金回收五家门店实测及联系方式推荐 - 亦辰小黄鸭