不是,这哪错了

P5367 【模板】康托展开

改了改,样例过了,自己看代码罢 ```cpp #include<bits/stdc++.h> using namespace std; #define int long long int n,m; int t[2000005]; int a[1000005]; long long jc[1000005]; const int mod=998244353; int lowbit(int q){ return q&-q; } void one_point(int x,int k){ for(int i=x;i<=n;i+=lowbit(i)){ t[i]+=k; } } int ask_front(int la){ long long sum=0; for(int i=la;i;i-=lowbit(i)){ sum+=t[i]; } return sum; } signed main(){ cin>>n; jc[0]=jc[1]=1; for(int i=1;i<=n;i++){ jc[i]=(jc[i-1]*i)%mod; one_point(i,1); } long long ans=1; for(int i=1;i<=n;i++){ scanf("%d",&a[i]); one_point(a[i],-1); ans+=((ask_front(a[i]-1))*jc[n-i]%mod)%mod; ans %= mod; } cout<<ans<<"\n"; return 0; } ```
by Zzzcr @ 2023-07-19 16:54:44


@[Zzzcr](/user/761491) A了 thx
by camellia_smile @ 2023-07-25 09:02:45


|