专栏文章

题解:P13679 [IAMOI R2] 传奇模数

P13679题解参与者 2已保存评论 2

文章操作

快速查看文章及其快照的属性,并进行相关操作。

当前评论
2 条
当前快照
1 份
快照标识符
@miod9nw1
此快照首次捕获于
2025/12/02 17:19
3 个月前
此快照最后确认于
2025/12/02 17:19
3 个月前
查看原文

分析

当我们输入的 nn 小于 998244353998244353 时,那么每个数除以 998244353998244353 向下取整的结果一定等于 00。如果输入的 nn9982443539982443532×99824435312\times998244353-1 时,那么这个区间内的每个数除以 998244353998244353 向下取整的结果都为 11。同理,如果输入的 nn2×9982443532\times9982443533×99824435313\times998244353-1 时,那么这个区间内的每个数除以 998244353998244353 向下取整的结果都为 22。以此类推。

思路

不难发现,每个区间所有数除以 998244353998244353 的结果的和模 998244353998244353 一定等于 00,所以我们只需要算出最后一个非完整的区间有多少个数,再乘上 nn 除以 998244353998244353 向下取整的值就可以了。

代码

CPP
#include<bits/stdc++.h>
using namespace std;
const int N=998244353;
long long n;
unsigned long long ans;
int main()
{
	cin>>n;
	ans=(n/N*(n%N+1)%N)%N;
	cout<<ans;
	return 0;
}

评论

2 条评论,欢迎与作者交流。

正在加载评论...