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');
}
相关推荐
aaaameliaaa2 小时前
字符函数和字符串函数
c语言·笔记·算法
城管不管3 小时前
ReAct、Plan-and-Execute、Reflection 三大智能 Agent 范式核心区别
java·人工智能·算法·spring·ai·动态规划
月疯3 小时前
二分法算法(水平等分图形面积)
算法
豆瓣鸡4 小时前
算法日记 - Day3
java·开发语言·算法
白白白小纯4 小时前
算法篇—反转链表
c语言·数据结构·算法·leetcode
Achou.Wang4 小时前
深入理解go语言-第5章 并发编程——Go的灵魂
大数据·算法·golang
The Chosen One9854 小时前
高进度算法模板速记(待完善)
java·前端·算法
小王C语言5 小时前
【7. 实现登录注册模块】:实现会话管理、注册/登录/退出 API
网络·c++
土豆.exe7 小时前
Fastjson2 2.0.53 哈希碰撞 RCE:从原理到三种打法
算法·哈希算法
黄河123长江7 小时前
有限Abel群的结构()
算法