1 条题解
-
0
#include<bits/stdc++.h> using namespace std; #define int long long const int N=2e5+10,P=998244353; int a[N],b[N],c1[N],c2[N]; int qpow(int a,int b){int ans=1;for(;b;b>>=1,a=a*a%P)if(b&1)ans=ans*a%P;return ans;} void add(int c[],int x,int k){for(;x<=N-10;x+=x&-x)c[x]+=k;} int get(int c[],int x){int ans=0;for(;x;x-=x&-x)ans+=c[x];return ans;} signed main() { int n;cin>>n; for(int i=1;i<=n;i++)cin>>a[i]; for(int i=1;i<=n;i++)b[i]=2*i-1; int sum=0; for(int i=1;i<=n;i++) { int gs=get(c1,N)-get(c1,a[i]-1),id=get(c2,a[i]-1)+1; sum+=gs*2+(2*id-1)*a[i];sum%=P; int res=sum*qpow(i*i%P,P-2)%P; cout<<res<<'\n'; add(c1,a[i],a[i]);add(c2,a[i],1); } return 0; }
- 1
信息
- ID
- 7730
- 时间
- 2000ms
- 内存
- 1024MiB
- 难度
- 10
- 标签
- 递交数
- 2
- 已通过
- 2
- 上传者