牛客小白月赛98 C-两个函数

题目链接:

登录—专业IT笔试面试备考平台_牛客网

分析:

当x=1时,直接由公式f(x)=ax得出结果;

当x≥1时,由公式可推出

                                              \sum f(f(i)) = (x-1)*x/2*a^2

对于a*a进行快速幂处理,记得开long long

AC代码:

#include<bits/stdc++.h>
using namespace std;
const long long N=998244353;

int t;

long long fun(long long a,long long x){
    return a*x%N;
}

long long quick_pow(long long a, long long x) {
    long long res = 1;
    while (x) {
        if (x & 1) res = res * a % N;
        a = a * a % N;
        x >>= 1;
    }
    return res;
}

int main(){
    cin>>t;
    while(t--){
        long long a,x;
        cin>>a>>x;
        if(x==1)
            cout<<(long long)a*x%N<<endl;
        else if(x>1){
            long long t =quick_pow(a, 2) % N;
            long long s = (x - 1) * x / 2;
            s %= N;
            cout << (t * s) % N << endl;
        }
    }
    return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值