1 条题解

  • 0
    @ 2024-12-22 11:03:59

    C++ :

    #include<bits/stdc++.h>
    using namespace std;
    int main() {
    	int n,a[10086];
    	cin>>n;
    	for(int i=1;i<=n;i++){
    		cin>>a[i];
    	}
    	int ans=0;
    	for(int i=1;i<n;i++){
    		for(int j=i+1;j<=n;j++){
    			if(a[i]>a[j]){
    				ans+=a[i];
    				swap(a[i],a[j]);
    			}
    		}
    	}
    	cout<<ans;
    	return 0;
    }
    

    Python :

    # coding=utf-8
    n = int(input())
    N = 1000010
    a = [0] + list(map(int, input().split()))
    C = [0 for _ in range(N)]
    def lowbit(x) : return (-x) & x
    
    def add(x, y) :
        while x < N :
            C[x] += y
            x += lowbit(x)
    
    def ask(x) :  # nums
        res = 0
        while x :
            res += C[x]
            x -= lowbit(x)
        return res
    
    res = 0
    for i in range(n, 0, -1) :
        res += a[i] * ask(a[i] - 1)
        add(a[i], 1)  # 数量
    print(res)
    
    
    • 1

    信息

    ID
    170
    时间
    1000ms
    内存
    128MiB
    难度
    (无)
    标签
    (无)
    递交数
    0
    已通过
    0
    上传者