ABC460_E题题解

题目链接

题意:给定 N N N 和 M M M,找到 x , y ∈ 1 , N x,y\in1,N x,y∈1,N 满足 concat ⁡ ( x , y ) ≡ x + y ( m o d M ) \operatorname{concat} (x,y)\equiv x+y \pmod{M} concat(x,y)≡x+y(modM) 的对数。

首先 concat ⁡ ( x , y ) = x × 10 sum ⁡ ( y ) + y \operatorname{concat}(x,y)=x\times10^{\operatorname{sum}(y)}+y concat(x,y)=x×10sum(y)+y, sum ⁡ ( y ) \operatorname{sum}(y) sum(y) 表示 y y y 十进制下的位数。所以可以推式子。

x × 10 sum ⁡ ( y ) + y ≡ x + y ( m o d M ) ⟹ ( 10 sum ⁡ ( y ) − 1 ) x ≡ 0 ( m o d M ) x\times10^{\operatorname{sum}(y)}+y\equiv x+y \pmod{M}\Longrightarrow (10^{\operatorname{sum}(y)}-1)x\equiv 0 \pmod{M} x×10sum(y)+y≡x+y(modM)⟹(10sum(y)−1)x≡0(modM)

我们枚举 a = 10 sum ⁡ ( y ) − 1 a=10^{\operatorname{sum}(y)}-1 a=10sum(y)−1,计算的就是同余方程 a x ≡ 0 ( m o d M ) ax\equiv 0 \pmod{M} ax≡0(modM) 中 x x x 的解的个数,再乘上满足 sum ⁡ ( y ) \operatorname{sum}(y) sum(y) 等于我们枚举的定值的 y y y 的个数,加到答案里。

因为 a x ≡ 0 ( m o d M ) ⟹ a x + M y ′ = 0 ax\equiv 0 \pmod{M}\Longrightarrow ax+My'=0 ax≡0(modM)⟹ax+My′=0,记 d = gcd ⁡ ( a , M ) d=\gcd(a,M) d=gcd(a,M),这个二元一次方程很特殊, x x x 的通解为 x = k M d ( k ∈ Z ) x=k\dfrac{M}{d}(k\in \mathbb{Z} ) x=kdM(k∈Z),所以解要满足下面的条件。

1 ≤ k M d ≤ N ⟹ 1 × d M ≤ k ≤ N × d M ⟹ 1 ≤ k ≤ N × d M 1\le k\dfrac{M}{d}\le N\Longrightarrow 1\times\dfrac{d}{M}\le k\le N\times\dfrac{d}{M} \Longrightarrow 1\le k\le N\times\dfrac{d}{M} 1≤kdM≤N⟹1×Md≤k≤N×Md⟹1≤k≤N×Md

而 y y y 的个数就是满足位数为 sum ⁡ ( y ) \operatorname{sum}(y) sum(y) 的数的个数(即一位数的个数,两位数的个数......)可以很简单地求出。

核心代码:

cpp 复制代码
void solve(){
	__int128 n,m;
	read(n);read(m);
	int t=sum(n);
	__int128 k=1;
	__int128 ans=0;
	for(int i=1;i<=t;i++){
		k*=(__int128)10;
		__int128 d=gcd(k-1,m);
		__int128 l=1;
		__int128 r=d*n/m;
		ans+=(r-l+1)*(min(n,k-1)-k/10+1)%998244353;
		ans%=998244353;
	}
	prin(ans);
	putchar('\n');
}
相关推荐
JieE2121 天前
LeetCode 101. 对称二叉树|JS 递归 + 迭代双解法,彻底搞懂镜像判断
javascript·算法
JieE2122 天前
LeetCode 56. 合并区间|超清晰 JS 图解思路,面试高频区间题
javascript·算法·面试
Jack202 天前
HarmonyOS开发中错误处理策略:网络异常统一处理
算法
小小杨树2 天前
读懂色彩:拍照调色不再难
算法·计算机视觉·配色
JieE2123 天前
LeetCode 226. 翻转二叉树|JS 递归超详细拆解,二叉树入门经典题
javascript·算法
JieE2123 天前
LeetCode 104. 二叉树的最大深度|递归思路超详细拆解
javascript·算法
vivo互联网技术3 天前
CVPR 2026 | 全新强化学习框架 BeautyGRPO:重塑真实人像
算法·大模型·cvpr·影像
Darling噜啦啦3 天前
列表转树算法深度解析:从 Map 到 Reduce 的两种实现,面试高频考点
数据结构·算法·面试
clint4563 天前
C++进阶(1)——前景提要
c++