50分求调
  • 板块灌水区
  • 楼主wilson_xiao
  • 当前回复1
  • 已保存回复1
  • 发布时间2023/11/15 17:13
  • 上次更新2023/11/15 19:17:28
查看原帖
50分求调
749939
wilson_xiao楼主2023/11/15 17:13

P3197

#include<iostream>
#include<cmath>
#include<algorithm>
using namespace std;
const long long mod=1e5+3;
long long fact[100005];
long long qpow(long long a, long long b, long long mod) {
    long long res = 1;
    a%=mod;
    while(b){
        if(b&1) res=res*a%mod;
        a=a*a%mod;
        b>>=1;
    }
    return res;
}
long long inv(long long x, long long m) {
  if (__gcd(x,(long long)m) != 1) return -1;
    return qpow(x,m-2,m);
}
long long C(long long n,long long m){
    if(n<0 || m<0 || n<m) return 0;
    if(m==0 || n==0) return 1;
    if(m==1) return n%mod;
    return fact[n]*inv(fact[m]*fact[n-m]%mod,mod)%mod;
}
long long A(long long n,long long m) {
	long long res=1;
	for (long long i=m;i>=1;i--) {
		res=((res%mod)*(n%mod))%mod;
		n--;
	}
    return res;
}
long long katlan(int n){
    return ((C(2*n,n))%mod*(inv(n+1,mod))%mod)%mod;
}
int main(){
    int n,m;
	cin>>m>>n;
	int res=(qpow(m,n,mod)%mod)-(m*qpow(m-1,n-1,mod)%mod);
	if(res<0) res+=mod;
	cout<<res<<endl;
}
2023/11/15 17:13
加载中...