为什么复杂度O(nlogn)会超时啊?
  • 板块P1908 逆序对
  • 楼主hellocccl
  • 当前回复8
  • 已保存回复8
  • 发布时间2024/1/15 19:13
  • 上次更新2024/1/15 22:27:52
查看原帖
为什么复杂度O(nlogn)会超时啊?
1062697
hellocccl楼主2024/1/15 19:13
#include <bits/stdc++.h>
#define ll long long
using namespace std;
inline int read(){//快读
	char ch=getchar();
	int x=0,f=1;
	while(ch<'0'||ch>'9'){if(ch=='-') f=-1;ch=getchar();}
	while(ch>='0'&&ch<='9') x=x*10+(ch^48),ch=getchar();
	return x*f;
}
void solve(){
    int n; cin>>n;
    vector <int> v(n);
    vector <int> x(n);
    for (int i=0; i<n; ++i){
        int a=read();
        v[i]= a;
        x[i]= a;
    }
    sort(x.begin(), x.end());
    ll ans = 0;
    for (int i=0; i<n; ++i){
        auto it = lower_bound(x.begin(), x.end(), v[i]);
        ans+= (it-x.begin());
        x.erase(it);
    }
    cout<<ans<<endl;
}
int main()
{

    int t=1;
    while(t--){
        solve();
    }
    return 0;
}
2024/1/15 19:13
加载中...