社区讨论

想问为什么时间差这么多

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 条回复,欢迎继续交流。

正在加载回复...