社区讨论
CE?
学术版参与者 4已保存回复 6
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 6 条
- 当前快照
- 1 份
- 快照标识符
- @mlkqos33
- 此快照首次捕获于
- 2026/02/13 18:23 6 天前
- 此快照最后确认于
- 2026/02/16 21:20 3 天前
我在做P5463的时候,提交了一份这样的代码
CPP#include <bits/stdc++.h>
using namespace std;
#define int __int128
//区间和+单点改
int n,m,ld;int ams;
unordered_map<int,int>umap;
int b[1100000];
int d[1100000];
int c[1100000];
int a[1100000];
inline int read()
{
int x = 0,f = 1;
char ch = getchar();
while(ch < '0' || ch > '9')
{
if(ch == '-'){f = -1;}
ch = getchar();
}
while(ch >= '0' && ch <= '9')
{
x = (x << 3) + (x << 1) + ch - '0';
ch = getchar();
}
return x * f;
}
inline void write(int x)
{
if(x < 0)
{
putchar('-');
x = -x;
}
if(x > 9)
{
write(x / 10);
}
putchar(x % 10 + '0');
}
int lowbit(int x)
{
return x & -x;
}
int g1r(int x)
{
int ans = 0;
while(x > 0)
{
ans += c[x];
x -= lowbit(x);
}
return ans;
}
int glrs(int l,int r)
{
return g1r(r) - g1r(l - 1);
}
void change(int x,int y)
{
int p = x;
while(p <= n)
{
c[p] += y;
p += lowbit(p);
}
}
bool cmp(int x,int y){return x < y;}
signed main()
{
n = read();
for(int i = 1;i <= n;i++)
{
a[i] = read();
b[i] = a[i];
}
sort(b + 1,b + n + 1);
int m = unique(b + 1,b + n + 1) - b - 1;
for(int i = 1;i <= n;i++)
{
d[i] = lower_bound(b + 1,b + m + 1,a[i]) - b;
}
for(int i = n;i >= 1;i--)
{
ams += i * g1r(d[i] - 1);
change(d[i],(n - i + 1));
}
write(ams);
}
然后评测机告诉我CE了?我在我自己电脑上没CE啊
回复
共 6 条回复,欢迎继续交流。
正在加载回复...