- 逆序对
- 2023-09-03 09:36:44 @
《大水题》:))))),所以请求加强数据或 添加/修改 题目:(
【方案一】(弱):加强数据,使n<=500000,a[i]<=10^9。
【方案二】(中):添加题目为给出平面n个点坐标,需要支持m次查询,每次查询输入两个点,代表一个矩形的左下角和右上角,问在这个矩形中(包括边)有几个点被覆盖。输入n,m;接下来n行输入点坐标,再下来m行输入查询矩形左下角和右上角坐标。输出m行查询结果。
数据n<=500000,所有坐标大于等于0小于等于10^7。
样例输入
6 4
2 3
3 2
5 5
2 4
4 2
5 5
1 1 2 2
2 3 3 5
3 3 4 5
2 1 3 2
样例输出
0
2
0
1
【方案三】(中强):添加题目为三维偏序问题,有n个元素,每个元素有a,b,c三个属性,属性最大值为k,设f(i)表示满足aj<=ai并且bj<=bi并且cj<=ci且j不等于i的j的数量.对于d∈[0,n),求f(i)=d的数量。输入n,k和n个元素的三种值。(输出的第i行表示d=i的f(i)的数量)
数据:n<=100000,1<=ai,bi,ci<=k<=200000。
样例输入
10 3
3 3 3
2 3 3
2 3 1
3 1 1
3 1 2
1 3 1
1 1 2
1 2 2
1 3 2
1 2 1
样例输出
3
1
3
0
1
0
1
0
0
1
注:所有方案时间均1s,方案二空间125MB,方案三500MB。
3 条评论
-
230907gj朱沈源 (2212134朱沈源) LV 8 @ 2023-09-30 21:00:22
我只会常规穷举啊
-
2023-09-30 21:00:04@
#include<bits/stdc++.h>
using namespace std;
int a[50000];
int main()
{
int n,c=0;cin>>n;
for(int i=1;i<=n;i++)cin>>a[i];
for(int i=1;i<=n;i++)
for(int j=i+1;j<=n;j++)
if(a[i]>a[j])
c++;
cout<<c;
return 0;
} -
2023-09-30 20:54:51@
请看看我还有一半点超时
- 1
信息
- ID
- 1661
- 难度
- 5
- 分类
- (无)
- 标签
- 递交数
- 38
- 已通过
- 14
- 通过率
- 37%
- 被复制
- 10
- 上传者