E 大常数 nlogn 求条
  • 板块题目总版
  • 楼主Ivan422
  • 当前回复0
  • 已保存回复0
  • 发布时间2024/11/2 22:54
  • 上次更新2024/11/2 23:05:08
查看原帖
E 大常数 nlogn 求条
662425
Ivan422楼主2024/11/2 22:54
#include<bits/stdc++.h>
using namespace std;
#define int long long
const int N=2e5+10;
int n,m,a[N],s[N],cnt,tr[2*N],d[N],ss[N];
int lb(int x){return x&-x;}
int qr(int x){int su=0;while(x>=1){su+=tr[x];x-=lb(x);}return su;}
void up(int x){while(x<=m){tr[x]++;x+=lb(x);}}
signed main(){
    cin>>n>>m;
    for(int i=1;i<=n;i++)cin>>a[i];
    for(int i=1;i<=n;i++)s[i]=(s[i-1]+a[i])%m,ss[i]=(ss[i-1]+s[i]);
    for(int i=n;i>=1;i--)cnt+=(ss[n]-ss[i-1]-s[i-1]*(n-i+1)+m*qr(s[i]-1)),up(s[i]);
    cout<<cnt;
    return 0;
}

TLE 28,差点把评测机撑爆。

2024/11/2 22:54
加载中...