当前位置: 首页 > 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.gsyq.cn/news/1370024.html

相关文章:

  • 数据抽象技术:提升机器学习模型噪声鲁棒性的工程实践
  • Axure中文汉化包终极指南:3分钟让英文界面秒变中文!
  • 2026 北京房屋漏水不用愁!雨中匠人免费上门检测,本地专业防水公司常年TOP1!卫生间免砸砖防水,快速解决您的烦恼。权威!靠谱!稳定!售后无忧!!! - 防水百科
  • 论文提速的终极秘籍!常用的AI论文软件,秒出初稿不费力
  • 如何用Unpaywall浏览器扩展破解学术论文访问限制:技术实现与应用指南
  • 10分钟搞定QQ机器人:go-cqhttp终极入门指南
  • 【2024 AI视频生成工具价格红黑榜】:12款主流工具年费/订阅制/按秒计费全对比,省下83%预算的决策指南
  • ChatGPT小红书文案避坑手册,92%新手踩中的5个认知陷阱(含平台稽查系统误判率原始日志截图)
  • DeepSeek计费水位预警机制搭建指南:从日志埋点到自动预算熔断(附Python监控脚本)
  • 为什么92%的DeepSeek团队仍在手动调配额?揭秘v3.2+配额API自动化编排的4个关键接口与避坑清单
  • 小红书文案冷启动失效真相(ChatGPT提示词底层逻辑大揭秘):基于1278条笔记A/B测试的归因分析
  • 【DeepSeek限流策略配置权威指南】:20年SRE亲授生产环境5大限流模式选型逻辑与避坑清单
  • 独立开发者如何利用 Taotoken 模型广场低成本试验不同模型效果
  • 为Hermes Agent配置自定义供应商并接入Taotoken聚合服务
  • 现在不看就晚了!DeepSeek即将下线v2.8审计API——迁移至Unified Audit Framework的6小时平滑切换checklist
  • 【DeepSeek额度失效预警】:你的免费Token正在被悄悄回收!3类高危行为+2种实时监控方案
  • 硕士毕业论文怎么写?
  • taotoken api key管理功能全解析如何创建轮转与禁用密钥
  • 2026柳州金牌黄金回收门店指南:黄金 白银 铂金 彩金回收五家门店实测及联系方式推荐 - 亦辰小黄鸭
  • 【独家首发】DeepSeek官方未公开的额度白名单申请通道(含内部工单编号模板+成功率提升87%的3项资质准备清单)
  • DeepSeek流式吞吐翻倍实录:从QPS 23→189的7项配置核弹级调整(含config.yaml安全补丁)
  • DeepSeek推理内存暴涨400%的元凶找到了:详解PagedAttention在DeepSeek-VL中的适配陷阱与绕过方案
  • 2026六安金牌黄金回收门店指南:黄金 白银 铂金 彩金回收五家门店实测及联系方式推荐 - 亦辰小黄鸭
  • PDF阅读器安全风险与漏洞分析方法论
  • 数据分析智能体:推荐2026-05-19 17:33字号
  • 额度秒光?API报错429?DeepSeek免费资源分配逻辑全解析,工程师必存的4类降级预案
  • 2026六盘水金牌黄金回收门店指南:黄金 白银 铂金 彩金回收五家门店实测及联系方式推荐 - 亦辰小黄鸭
  • Nginx DH参数安全加固:2048位ffdhe标准配置与五层验证
  • 卖工业胶粘剂怎么找客户?下游工厂在哪里
  • 2026荆州金牌黄金回收门店指南:黄金 白银 铂金 彩金回收五家门店实测及联系方式推荐 - 亦辰小黄鸭