社区讨论
70WA求调
P2804神秘数字参与者 2已保存回复 2
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 2 条
- 当前快照
- 1 份
- 快照标识符
- @mia50mb9
- 此快照首次捕获于
- 2025/11/22 18:19 3 个月前
- 此快照最后确认于
- 2025/11/22 20:00 3 个月前
CPP
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N(2e5+5),mod(92084931);
int n,m;
ll s[N],b[N],tr[N],a[N];
#define lowbit(x) (x&(-x))
inline void add(int x,int N){
while(x<=N){
tr[x]=(tr[x]+1)%mod;
x+=lowbit(x);
}
}
inline ll query(int x){
ll res(0);
while(x){
res+=tr[x];res%=mod;
x-=lowbit(x);
}return res;
}
int main(){
ios::sync_with_stdio(0);
cin.tie(0);cout.tie(0);
cin>>n>>m;
for(int i(1);i<=n;++i){
cin>>a[i];a[i]-=m;
s[i]=s[i-1]+a[i];
b[i]=s[i];
}
sort(b+1,b+n+1);int nl(unique(b+1,b+n+1)-b);
for(int i(1);i<=n;++i) s[i]=lower_bound(b+1,b+nl+1,s[i])-b;
ll ans(0);
for(int i(1);i<=n;++i){
// cout<<s[i]<<" "<<query(s[i]-1)<<"\n";
add(s[i],nl);
ans=(ans+query(s[i]-1)+(b[s[i]]>0))%mod;
}cout<<ans;
return 0;
}
回复
共 2 条回复,欢迎继续交流。
正在加载回复...