社区讨论
想问为什么时间差这么多
P1908逆序对参与者 2已保存回复 13
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 13 条
- 当前快照
- 1 份
- 快照标识符
- @mi7cq7zw
- 此快照首次捕获于
- 2025/11/20 19:32 4 个月前
- 此快照最后确认于
- 2025/11/20 22:00 4 个月前
12260ms
CPP#include <bits/stdc++.h>
using namespace std;
int read( ){
int x=0,y=1;
char c=getchar( );
while(c>'9'||c<'0'){if(c=='-')y=-1;c=getchar( );}
while(c>='0'&&c<='9'){x=x*10+c-'0';c=getchar( );}
return x*y;
}
int n,a[500001];
vector<int> v;
int ans=0;
int main( ){
n=read( );
for(register int i=1;i<=n;i++) a[i]=read( );
for(register int i=1;i<=n;i++){
int kk=upper_bound(v.begin( ),v.end( ),a[i])-v.begin( );
ans=ans+i-kk-1;
v.insert(v.begin( )+kk,a[i]);
}
printf("%d",ans);
return 0;
}
270ms
CPP#include<cstdio>
#include<algorithm>
#include<vector>
using namespace std;
int n,m,ans,a[100001];
vector<int>v;
int main()
{
scanf("%d",&n);
for(int i=1;i<=n;i++) scanf("%d",&a[i]);
for(int i=1;i<=n;i++)
{
int now=upper_bound(v.begin(),v.end(),a[i])-v.begin();
ans=ans+i-now-1,v.insert(v.begin()+now,a[i]);
}
printf("%d",ans);
return 0;
}
已经试过不是快读或者头文件的锅了,明明一样啊,为什么时间差了这么多
过不了的,只能A前5个
不是想A 只是想知道为什么差这么多时间
回复
共 13 条回复,欢迎继续交流。
正在加载回复...