博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
HackerRank "Larry's Array"
阅读量:5085 次
发布时间:2019-06-13

本文共 1053 字,大约阅读时间需要 3 分钟。

I caught the sparkle in my mind and got AC1 ! It is a great great experience !

So the basic idea: permute on 3 consecutive items doesn't change the parity of the no. of inversions. Each permutation can only remove 0 or 2 inversions. So we say "YES" when no. of inversion % 2 = = 0. And we use MergeSort to count it in O(nlgn).

ret = 0def merge(arr1, arr2):    global ret    if not arr1: return arr2    if not arr2: return arr1    for v2 in arr2:        arr1.append(v2)        i = len(arr1) - 1        while(i > 0):            if arr1[i] < arr1[i - 1]:                arr1[i - 1],arr1[i] = arr1[i], arr1[i - 1]                i -= 1                ret += 1            else:                break    return arr1def mergeSort(arr):    n = len(arr)    if (n < 2): return arr        return merge(mergeSort(arr[:n//2]), mergeSort(arr[n//2:]))###t = int(input())for _ in range(t):    n = int(input())    arr = list(map(int, input().split()))    ret = 0    mergeSort(arr)    print("YES" if ret % 2 == 0 else "NO")

转载于:https://www.cnblogs.com/tonix/p/5385419.html

你可能感兴趣的文章
<s:iterator>的status
查看>>
C++入门--1.0输入输出
查看>>
让搭建在Github Pages上的Hexo博客可以被Google搜索到
查看>>
Introduction to 3D Game Programming with DirectX 12 学习笔记之 --- 第十四章:曲面细分阶段...
查看>>
在WPF控件上添加Windows窗口式调整大小行为
查看>>
背水一战 Windows 10 (36) - 控件(弹出类): ToolTip, Popup, PopupMenu
查看>>
打开3389
查看>>
React学习记录
查看>>
nginx常见内部参数,错误总结
查看>>
对象与类
查看>>
《奸的好人2》财色战场----笔记
查看>>
BZOJ 1834网络扩容题解
查看>>
bzoj1878
查看>>
【Vegas原创】Mysql绿色版安装方法
查看>>
Thrift Expected protocol id ffffff82 but got 0
查看>>
.NET下XML文件的读写
查看>>
2009程序员考试大纲
查看>>
南昌邀请赛I.Max answer 单调栈+线段树
查看>>
MediaStore 与Media.EXTERNAL_CONTENT_URI
查看>>
常用网络资源下载
查看>>