求问为什么会RE
  • 板块CF61E Enemy is weak
  • 楼主HeHNCu
  • 当前回复1
  • 已保存回复1
  • 发布时间2023/12/17 20:45
  • 上次更新2023/12/17 23:43:54
查看原帖
求问为什么会RE
405111
HeHNCu楼主2023/12/17 20:45

我的代码和第一篇题解基本一样啊,为啥我会RE?

#include<bits/stdc++.h>
//#include<windows.h>
#define int unsigned long long int
using namespace std; 
int n,A[200010],B[200010],ans;
vector<int>C(1e7+10),D(1e7+10);
#define I vector<int>
inline void add(I& c,int x,int y){
    for(;x<=n;x+=x&-x){
        c[x]+=y;
    }
}
inline int query(I &c,int x){
    int res=0;
    for(;x>0;x-=x&-x){
        res+=c[x];
    }
    return res;
}
inline int query(I &c,int x,int y){return query(c,y)-query(c,x-1);}
signed main(){
    //freopen("r","test.txt",stdin);
    scanf("%lld",&n);
    for(int i=1;i<=n;i++) scanf("%lld",&A[i]),B[i]=A[i];
	sort(B+1,B+n+1);
	for(int i=1;i<=n;i++)A[i]=lower_bound(B+1,B+n+1,A[i])-B;
    //
    for(int i=1;i<=n;i++){
        ans+=query(D,A[i]+1,n);
        add(D,A[i],query(C,A[i]+1,n));
        add(C,A[i],1);
    }
    printf("%lld",ans);
    //while(1);
    return 0;
}
2023/12/17 20:45
加载中...