当前位置: 首页 > news >正文

苏州建设公司网站接做网站的

苏州建设公司网站,接做网站的,山西响应式网站制作,互动平台是什么一、第一题:火柴排队 解题思路:归并排序 重点在于想清楚是对哪个数组进行归并排序求逆序对 【Python程序代码】 from math import * n int(input()) a list(map(int,input().split())) b list(map(int,input().split())) na,nb [],[] for …

一、第一题:火柴排队

解题思路:归并排序
        重点在于想清楚是对哪个数组进行归并排序求逆序对

【Python程序代码】

from math import *
n = int(input())
a = list(map(int,input().split()))
b = list(map(int,input().split()))
na,nb = [],[]
for i in range(n):na.append([a[i],i])nb.append([b[i],i])
na.sort()
nb.sort()
np = [0]*(n+5)
for i in range(n):np[na[i][1]] = nb[i][1]
tep = [0]*(100005)
def merge_sort(q, l, r):if l >= r: return 0mid = (l + r) >> 1res = merge_sort(q, l, mid) + merge_sort(q, mid + 1, r)k, i, j = 0, l, mid + 1while i <= mid and j <= r:if q[i] <= q[j]:tep[k] = q[i]k, i = k + 1, i + 1else:res += mid - i + 1tep[k] = q[j]k, j = k + 1, j + 1while i <= mid:tep[k] = q[i]k, i = k + 1, i + 1while j <= r:tep[k] = q[j]k, j = k + 1, j + 1j = 0for i in range(l, r + 1):q[i] = tep[j]j += 1return res
print( (merge_sort(np,0,n-1))%99999997)

二、第二题: 归并排序

解题思路:归并排序
        归并排序模板题

【Python程序代码】

n = int(input())
a = list(map(int,input().split()))
tep = [0]*(n+5)
def merge_sort(q,l,r):if l>=r:returnmid = (l+r)>>1merge_sort(q,l,mid);merge_sort(q,mid+1,r)k,i,j = 0,l,mid+1while i<=mid and j<=r:if q[i]<=q[j]:tep[k] = q[i]k,i=k+1,i+1else:tep[k] = q[j]k,j=k+1,j+1while i<=mid:tep[k]=q[i]k,i=k+1,i+1while j<=r:tep[k]=q[j]k,j=k+1,j+1j = 0for i in range(l,r+1):q[i]=tep[j]j += 1merge_sort(a,0,n-1)
for i in range(n):print(a[i],end=" ")

三、第三题:逆序对的数量

解题思路:归并排序
        归并排序求逆序对模板题

【Python程序代码】

n = int(input())
a = list(map(int,input().split()))
tep = [0]*(n+5)
def merge_sort(q,l,r):if l>=r:return 0mid = (l+r)>>1res = merge_sort(q,l,mid)+merge_sort(q,mid+1,r)k,i,j = 0,l,mid+1while i<=mid and j<=r:if q[i]<=q[j]:tep[k] = q[i]k,i=k+1,i+1else:res += mid - i + 1tep[k] = q[j]k,j=k+1,j+1while i<=mid:tep[k]=q[i]k,i=k+1,i+1while j<=r:tep[k]=q[j]k,j=k+1,j+1j = 0for i in range(l,r+1):q[i]=tep[j]j += 1return res
print(merge_sort(a,0,n-1))

 四、第四题:小朋友排队

解题思路:归并排序
        归并排序求出每个数与其他数组成的逆序对数,然后求和公式累加

【Python程序代码】

n = int(input())
a = list(map(int, input().split()))
q,tep = [],[[0]*2 for _ in range(n+5) ]
for i in range(n):q.append( [a[i],i] )
sum = [0]*(n+5)
def merge(q,l,r):if l>=r:returnmid = (l+r)>>1merge(q,l,mid);merge(q,mid+1,r)k,i,j=0,l,mid+1while i<=mid and j<=r:if q[i][0]<=q[j][0]:tep[k]=q[i]sum[q[i][1]] += j-mid-1k,i = k+1,i+1else:tep[k]=q[j]sum[q[j][1]] += mid-i+1k,j = k+1,j+1while i<=mid:tep[k] = q[i]sum[q[i][1]] += j-mid-1k,i = k+1,i+1while j<=r:tep[k] = q[j]k,j = k+1,j+1j = 0for i in range(l,r+1):q[i]=tep[j]j += 1
merge(q,0,n-1)
res = 0
for i in range(n):res += (sum[i])*(sum[i]+1)//2
print(res)

五、第五题:超快速排序

解题思路:归并排序
        归并排序求逆序对模板题

【Python程序代码】

import sys
tep = [0] * (500005)
def merge_sort(q,l,r):if l>=r:return 0mid = (l+r)//2res = merge_sort(q,l,mid) + merge_sort(q,mid+1,r)k,i,j = 0,l,mid+1while i<=mid and j<=r:if q[i]<=q[j]:tep[k]=q[i]k,i = k+1,i+1else:tep[k]=q[j]res += mid-i+1k,j = k+1,j+1while i<=mid:tep[k] = q[i]k,i = k+1,i+1while j<=r:tep[k] = q[j]k,j = k+1,j+1j = 0for i in range(l,r+1):q[i] = tep[j]j += 1return res
n = int(sys.stdin.readline())
while n!=0:a = []for i in range(n):a.append(int(sys.stdin.readline()))print(merge_sort(a,0,n-1))n = int(sys.stdin.readline())
http://www.yayakq.cn/news/80991/

相关文章:

  • 程序员必备软件宁波seo在线优化
  • 新闻类网站源码wordpress后台默认登录地址
  • 个人教程网站网络绿化网站建设哪家权威
  • 烟台h5网站建设公司水印在线制作网站
  • 怎么搭建一个自己的网站百度网址导航主页
  • 九江县建设规划局网站app开发源码
  • 网站建设方案书下载wordpress 模版仿米拓
  • 对网站建设的具体想法傻瓜式建站软件
  • 做网站常熟明远建设是哪里的
  • 域名网站注册认证高中生自己做 网站
  • 互联网营销师培训大纲网站建设优化开发公司
  • 嘉兴网站专业制作营业执照注册流程
  • 免费建设小说网站顺企网官网下载安装
  • 建企业网站公司企业网站有哪几个类型
  • 品牌网站设计公司哪家学校网站php源码
  • 恐龙网站建设网站二级分类
  • 东莞公司网站建设公司企业网站的推广形式有哪些
  • 郑州电商网站开发做外卖那些网站好
  • 重庆做网站重庆做网站vr 做的网站
  • 湖南交通建设监理协会网站乔拓云智能建站系统
  • php做网站的技术难点wordpress网站维护插件
  • 婴幼儿用品网站开发意义建设部网站首页格式合同
  • 网站建设工作总结范文资源网站快速优化排名
  • 有什么好的网站设计思想的博客项城网站设计
  • 常州外贸网站设计昆明网络推广怎么做
  • 新闻类网站开发多久给被k的网站做友链
  • 五金公司网站模板网站正在建设中
  • 商品展示型网站有哪些什么是网络营销和网络营销的职能
  • 海口网站建设哪家好域名有了怎么制作网站
  • 国外知名设计网站大全结构设计网站推荐