1 条题解

  • 2
    @ 2024-11-25 17:53:03

    对题目进行简单转化,可以发现就是求k * p≡t (mod n),对于这种不定方程,可以通过ex_gcd求出k * p ≡ 1(mod n),再乘上t即可。

    #include<bits/stdc++.h>
    using namespace std;
    long long ex_gcd(long long a,long long b,long long& x,long long& y)
    {
    	if(!b)
    	{
    		x=1,y=0;
    		return a;
    	}
    	long long ans=ex_gcd(b,a%b,x,y);
    	long long t=x;
    	x=y;
    	y=t-(a/b)*y;
    	return ans;
    }
    long long inv(long long a,long long b)
    {
    	long long x,y;
    	long long g=ex_gcd(a,b,x,y);
    	return (x%b+b)%b;
    }
    int main()
    {
    	//freopen("light.in","r",stdin);
    	//freopen("light.out","w",stdout);
    	long long n,p,t;
    	cin>>n>>p>>t;
    	cout<<inv(p,n)%n*t%n;
    	return 0;
    }
    
    • @ 2024-11-29 8:52:50

      建议补上 latex

  • 1

信息

ID
948
时间
1000ms
内存
256MiB
难度
1
标签
递交数
16
已通过
5
上传者