求助
  • 板块学术版
  • 楼主WD2c0mP
  • 当前回复1
  • 已保存回复1
  • 发布时间2023/4/24 19:03
  • 上次更新2023/10/23 17:38:35
查看原帖
求助
780641
WD2c0mP楼主2023/4/24 19:03

P5431TLE,30分,请问还能咋优化??

#include<bits/stdc++.h>
#define ll long long
using namespace std;
ll p,a[5000010];
inline ll ksm(ll a,ll b) {
    ll ans = 1;
    while (b) {
        if (b & 1) ans = ans * a % p;
        a = a * a % p;
        b >>= 1;
    }
    return ans;
}
int main(){
    int n,k;
    scanf("%d %lld %d",&n,&p,&k);
    for (int i = 1;i <= n;i ++) {
        scanf("%lld",&a[i]);
    }
    ll ans = 0;
    for (int i = 1;i <= n;i ++) {
        ans += ksm(k,i) * ksm(a[i],p - 2) % p;
        ans %= p;
    }
    cout << ans % p << endl;
    return 0;
}
2023/4/24 19:03
加载中...