蓝桥杯刷题--python-19--归并排序,离散化,hash,逆序数

505. 火柴排队 - AcWing题库

n=int(input())
a=list(map(int,input().split()))
b=list(map(int,input().split()))
mod=99999997
# map
c=[0 for i in range (n+1)]
# 归并排序模板

def _MergeSort(arr,l,r,tmp):
    if  l>=r: return 0
    # 分治思想
    mid=l+r>>1
#     当前层操作
    res=(_MergeSort(arr,l,mid,tmp))+(_MergeSort(arr,mid+1,r,tmp))%mod
#     当前层逻辑
    begin1=l
    end1=mid
    begin2=mid+1
    end2=r
    index=l

    while(begin1<=end1 and begin2<=end2):
        if arr[begin1]<arr[begin2]:
            tmp[index]=arr[begin1]
            index+=1
            begin1+=1
        else:
            tmp[index]=arr[begin2]
            index+=1
            begin2+=1
            res=(res+end1-begin1+1) % mod

#    把多余的添加到数组
    # 把多余的添加到数组
    while begin1 <= end1:
        tmp[index] = arr[begin1]
        index += 1
        begin1 += 1
    while begin2 <= end2:
        tmp[index] = arr[begin2]
        index += 1
        begin2 += 1

    for i in range (l,r+1):
        arr[i]=tmp[i]
    return res

def MergeSort(arr):
    tmp=[0 for _ in range (len(arr))]
    # 调用子函数
    res=_MergeSort(arr,0,len(arr)-1,tmp)
    return res


# 离散化
def work(a):
    n=len(a)
    p= [i for i in range (1,n+1)]
    p.sort(key=lambda x:a[x-1])
    for i in range (1,n+1):
        a[p[i-1]-1]=i

work(a)
work(b)
# hash map
for i in range(n):
    c[a[i]]=i
for i in range (n):
    b[i]=c[b[i]]
print(MergeSort(b))


http://www.niftyadmin.cn/n/5424019.html

相关文章

leetcode264--丑数II

1. 题意 求第 k k k大的 2 i 3 j 5 k 2^{i}3^{j}5^{k} 2i3j5k 丑数II 2. 题解 2.1 最小堆哈希表 从最小的数开始&#xff0c;生成 2 i 3 i 5 i 2i\ 3i\ 5i 2i 3i 5i;判断这些数是否生成过&#xff0c;没生成过再将其插入堆中。 class Solution { public:int nthUglyNumbe…

软件测试知识面试题:测试计划关键、BUG流程、BUG描述、测试的整体覆盖率

文章目录 做好测试计划工作的关键是什么&#xff1f;公司的BUG流程是什么&#xff1f;如何提交一个好的bug&#xff1f;BUG描述包含哪些内容&#xff1f;讲述自己在项目中发现最有意义的一个 BUG&#xff0c;是什么导致出现这个问题&#xff1f;&#xff08;例子&#xff09;对…

解除网页文本禁止复制限制方法

前言 在我们日常浏览网页和查找资料时&#xff0c;经常需要复制一些文字内容进行引用、收藏或摘抄。 然而&#xff0c;我们也会遇到一些网站上的内容无法复制&#xff0c;这通常是因为网站本身具有禁止复制的限制。 找到的资料如果需要一个个字手打&#xff0c;效率实在太低…

用通俗易懂的方式讲解:大模型 Rerank 模型部署及使用技巧总结

Rerank 在 RAG&#xff08;Retrieval-Augmented Generation&#xff09;过程中扮演了一个非常重要的角色&#xff0c;普通的 RAG 可能会检索到大量的文档&#xff0c;但这些文档可能并不是所有的都跟问题相关&#xff0c;而 Rerank 可以对文档进行重新排序和筛选&#xff0c;让…

KSR-imp通过vcpkg安装CGAL

KSR-imp通过vcpkg安装CGAL 项目地址 该项目的地址在&#xff1a;KSR-imp 该项目使用vcpkg安装CGAL依赖库 CGALCGAL CGAL操作手册CGAL 5.6.1 - Manual Documentation 安装过程 Visual Studio 这部分搜索教程安装 安装CMake 下载 下载地址CMake 安装 下载Windows x64 I…

python读取大型csv文件,降低内存占用,提高程序处理速度

文章目录 简介读取前多少行读取属性列逐块读取整个文件总结参考资料 简介 遇到大型的csv文件时&#xff0c;pandas会把该文件全部加载进内存&#xff0c;从而导致程序运行速度变慢。 本文提供了批量读取csv文件、读取属性列的方法&#xff0c;减轻内存占用情况。 import pand…

关于Nginx服务器配置及性能优化的20道高级面试题

1. 请解释Nginx服务器的工作原理。 Nginx服务器以高性能、稳定性和低资源消耗而著称&#xff0c;其工作原理主要涉及其多进程架构、反向代理功能以及模块组成。具体来看&#xff1a; 多进程架构&#xff1a;Nginx采用一个master进程和多个worker进程的架构。Master进程主要负…

传统实体门店出路何在?痛点分析与未来发展方向深入探讨

随着电子商务的飞速发展&#xff0c;传统实体门店仿佛被推到了风口浪尖&#xff0c;面临着前所未有的挑战。然而&#xff0c;实体店作为商业的基石&#xff0c;仍然承载着许多消费者对于购物体验的期待和需求。 作为一名开鲜奶吧5年的创业者&#xff0c;而且成功培训了100学员…