1 条题解

  • 0
    @ 2026-4-23 20:33:24
    #include<bits/stdc++.h>
    using namespace std;
    #define int long long
    const int B=1e6;
    int n,m,P;
    int qpow(int a,int b){int ans=1;for(;b;b>>=1,a=a*a%P)if(b&1)ans=ans*a%P;return ans;}
    signed main()
    {
    	cin>>n>>m>>P;m--;
    	int sum=0,pos=1;
    	for(int i=1;i<=B;i++)
    	{
    		pos=pos*n%P;
    		sum=(sum+pos)%P;
    	}
    	int ans=0;
    	for(int i=1;i<=m/B;i++)ans=(ans+qpow(n,(i-1)*B)*sum)%P;
    	for(int i=m/B*B+1;i<=m;i++)ans=(ans+qpow(n,i))%P;
    	cout<<(ans+1)%P;
    	return 0;
    }
    • 1

    信息

    ID
    1724
    时间
    2000ms
    内存
    1024MiB
    难度
    10
    标签
    递交数
    7
    已通过
    2
    上传者