zoukankan      html  css  js  c++  java
  • A题

    A - A
    Time Limit:1000MS     Memory Limit:131072KB     64bit IO Format:%I64d & %I64u
     

    Description

    bobo has a sequence a 1,a 2,…,a n. He is allowed to swap two adjacent numbers for no more than k times. 

    Find the minimum number of inversions after his swaps. 

    Note: The number of inversions is the number of pair (i,j) where 1≤i<j≤n and a i>a j.
     

    Input

    The input consists of several tests. For each tests: 

    The first line contains 2 integers n,k (1≤n≤10 5,0≤k≤10 9). The second line contains n integers a 1,a 2,…,a n (0≤a i≤10 9).
     

    Output

    For each tests: 

    A single integer denotes the minimum number of inversions.
     

    Sample Input

    3 1 2 2 1 3 0 2 2 1
     

    Sample Output

    1 2
     
    题解:同归并排序,只需要逆序数减去交换次数。但是要注意交换次数的大小是否大于原本逆序数。
     
    #include<iostream>
    #include<cstdio>
    using namespace std;
    int n,t[100005],a[100005];
    long long k,total;
    void merge_sort(int *a,int x,int y,int *t)
    {
        if(y-x>1)
        {
            int m=x+(y-x)/2;
            int p=x,q=m,i=x;
            merge_sort(a,x,m,t);
            merge_sort(a,m,y,t);
            while(p<m||q<y)
            {
                if(q>=y||(p<m&&a[p]<=a[q]))
                    t[i++]=a[p++];
                else
                    {
                        t[i++]=a[q++];
                        total+=m-p;
                    }
            }
            for(i=x;i<y;i++)
                a[i]=t[i];
        }
    }
        int main()
        {
            while(cin>>n>>k)
            {
                for(int i=0;i<n;i++)
                {
                    cin>>a[i];
                }
                total=0;
                merge_sort(a,0,n,t);
                if(total<=k)
                    cout<<'0'<<endl;
                else
                printf("%lld
    ",total-k);
            }
            return 0;
        }
     
  • 相关阅读:
    Leetcode Spiral Matrix
    Leetcode Sqrt(x)
    Leetcode Pow(x,n)
    Leetcode Rotate Image
    Leetcode Multiply Strings
    Leetcode Length of Last Word
    Topcoder SRM 626 DIV2 SumOfPower
    Topcoder SRM 626 DIV2 FixedDiceGameDiv2
    Leetcode Largest Rectangle in Histogram
    Leetcode Set Matrix Zeroes
  • 原文地址:https://www.cnblogs.com/hfc-xx/p/4716144.html
Copyright © 2011-2022 走看看