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;
        }
     
  • 相关阅读:
    bash 中的 ; && 与|| 的作用
    远程root用户无法登陆
    MySQL5.6主从同步(热备份)
    进程之间的通信方式
    远程连接openGuass配置
    openGuass1.1.0部署
    Go同步原语
    spring boot集成activiti6
    解决默认的jackson序列化循环引用的问题
    spring boot集成websocket
  • 原文地址:https://www.cnblogs.com/hfc-xx/p/4716144.html
Copyright © 2011-2022 走看看