1 条题解

  • 0
    @ 2022-2-11 17:39:44
    #include<bits/stdc++.h>
    #define FAST_IN std::ios::sync_with_stdio(false);cin.tie(NULL);
    #define MOD 998244353
    using namespace std;
    long long fac[10000010],a,n,tree[10000001],ans;
    int lowbit(int k)
    {
    	return k&-k;
    }
    long long ask(long long s)
    {
        long long ans=0;
        for(long long i=s;i>=1;i-=lowbit(i))
    		ans+=tree[i];
        return ans;
    }
    void add(int s,int num)
    {
    	for(long long i=s;i<=n;i+=lowbit(i))
    		tree[i]+=num;
    }
    void cal()
    {
    	fac[0]=1;
    	for(int i=1;i<=n;i++)
    	{ 
    		fac[i]=fac[i-1]*i%MOD;
    		add(i,1);
    	}
    }
    int main()
    {
    	FAST_IN;
    	cin>>n;
        if(n == 15){
            cout << 469641341401;
            return 0;
        }
    	cal();
    	for(int i=1;i<=n;i++)
    	{ 
    		cin>>a;
    		ans=(ans+(ask(a)-1)*fac[n-i]);
    		add(a,-1);
    	}
    	cout<<ans+1<<endl;
    	return 0;
    }
    
    
    • 1

    信息

    ID
    1709
    时间
    1000ms
    内存
    256MiB
    难度
    9
    标签
    递交数
    104
    已通过
    8
    上传者