来个没算法基础也能通过本题的做法。

首先直接带入即可。

也非常好求,本质是一个等差数列的求和公式。我们可以写为:

对于,我们需要将进行求和。我们可以先将算出来的进行化简,得出为根据计算出来的系数),然后分别用平方和公式即可计算出

用同样的方式可以计算:首先根据刚刚算出的得出的结果,展开并合并系数后,得到这三项的系数,然后用立方和公式以及平方和公式即可求出

参考代码(硬推了12分钟推出来的):

#include<bits/stdc++.h>
using namespace std;
#define int long long
int mod=998244353;
int power(int a,int b){
    int res=1;
    while(b){
        if(b&1)res=res*a%mod;
        b>>=1;
        a=a*a%mod;
    }
    return res;
}
int inv(int x){
    return power(x,mod-2);
}
signed main(){
    long long n;
    int _;
    cin>>_;
    while(_--){
        int a,b,x;
        cin>>a>>b>>x;
        cout<<(a*x+b)%mod<<" ";
        int aa=a*inv(2)%mod,bb=(a*inv(2)+b)%mod;
        cout<<((aa*x%mod*x%mod)+bb*x%mod)%mod<<" ";
        cout<<(aa*x%mod*(x+1)%mod*(2*x+1)%mod*inv(6)%mod+x*(x+1)%mod*inv(2)%mod*bb%mod)%mod<<" ";
        int aaa=aa*inv(3)%mod,bbb=(aa+bb)*inv(2)%mod,ccc=(aa*inv(6)%mod+bb*inv(2)%mod)%mod;
        cout<<(((x*x+x)%mod*inv(2)%mod)*((x*x+x)%mod*inv(2)%mod)%mod*aaa%mod+
            bbb*x%mod*(x+1)%mod*(2*x+1)%mod*inv(6)%mod+
            x*(x+1)%mod*inv(2)%mod*ccc%mod)%mod<<'\n';
    }
}
/*
ax+b
x*(x+1)*(2x+1)/6   x*(x+1)/2
a/2*x^2+(a/2+b)x
a*(1+x)*x/2+bx
*/