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

wordpress nas 外网西安seo服务公司排名

wordpress nas 外网,西安seo服务公司排名,多合一seo插件破解版,建设一个网站的硬件要求吗题目 小红认为一个长度为 n 的数组 a 是好的,当且仅当对于任意的 i ,均满足相等,其中数组下标 i 从 1 开始,小红每次可以对一个数加 1 或者减 1 ,求把给定的数组变成好数组的最少操作次数。 输入描述:第一…

题目

小红认为一个长度为 n 的数组 a 是好的,当且仅当对于任意的 i ,均满足\left | a_i-i \right |相等,其中数组下标 i 从 1 开始,小红每次可以对一个数加 1 或者减 1 ,求把给定的数组变成好数组的最少操作次数。

输入描述:第一行是一个整数n\left ( 1\leq n\leq 1000 \right ),表示数组长度。 第二行是n个整数,第i个为a_i\left ( 1\leq a_i\leq n \right )

输出描述:一个整数,表示把给定的数组变成好数组的最少操作次数。

输入示例1:

3
3 2 1

输出示例1:

2

解释:

将数组[3,2,1]调整为[3,4,1]经过的步数最小,为2;[3,4,1]是一个好数组,满足:

\left | 3-1 \right |=\left | 4-2 \right |=\left | 1-3 \right |=2

输入示例2:

3
1 2 3

输出示例2:

0

解答

此题注意输入的第二句话:数组是n个整数,第i个数组元素为a_i\left ( 1\leq a_i\leq n \right )

我们很容易设对于任意的 i ,都满足\left | a_i-i \right |=k。对于给定的ka_i需要调整到i+k或者i-k。即第 i 个元素的最小调整代价是min\left ( \left | a_i-\left ( i-k \right ) \right |, \left | a_i-\left ( i+k \right ) \right |\right ),总的代价就是

cost=\sum_{i=1}^{n}min\left ( \left | a_i-\left ( i-k \right ) \right |, \left | a_i-\left ( i+k \right ) \right |\right )

因此,只需从0遍历k,得到最小代价时的k,然后返回这个最小代价即可。

那么k的上界应该取多少呢?注意到:

min\left ( \left | a_i-\left ( i-k \right ) \right |, \left | a_i-\left ( i+k \right ) \right |\right )=min\left ( \left |a_i+k-i \right |,\left |a_i-k-i \right | \right )

k\geq n时,可以去掉绝对值:

min\left ( \left |a_i+k-i \right |,\left |a_i-k-i \right | \right )=min\left ( a_i+k-i,k+i-a_i \right )\left ( k\geq n \right )

注意到min\left ( a_i+k-i,k+i-a_i \right )是一个大于等于1的数,也就是说,当k\geq n时,对所有的imin\left ( a_i+k-i,k+i-a_i \right )都不小于0\leq k< n的情形,所以只需考虑0\leq k< n即可。

代码实现:

import sysdef solve():# data = sys.stdin.read().split()# n = int(data[0])# a = list(map(int, data[1:]))n = 10a = [9, 2, 3, 1, 5, 8, 6, 2, 4, 7]ans = float('inf')# 枚举可能的 k 值for k in range(n):total = 0# 对每个位置计算最小操作次数for i in range(1, n + 1):# 直接计算变为 i+k 与 i-k 的代价c1 = abs(a[i - 1] - (i + k))c2 = abs(a[i - 1] - (i - k))total += min(c1, c2)ans = min(ans, total)print(ans)if __name__ == '__main__':solve()
http://www.dtcms.com/wzjs/21784.html

相关文章:

  • wordpress 主题大学惠州seo外包公司
  • 淘宝网页版下载seo百度关键词排名
  • 12306网站能不能用银河二计算机做服务器啊慢得要死中国新冠一共死去的人数
  • 张家港市网站建设北京整站线上推广优化
  • 网站建设用什么软件做贴吧高级搜索
  • 网站设计制作从哪里学起电话营销外包公司
  • 做网站建设需要会哪些企业网站建设多少钱
  • 昆明百度智能建站seo搜索引擎优化是什么意思
  • 网页版微信二维码扫描搜索引擎优化技术
  • 中国最新军事新闻西陆网seo北京
  • 网站想更换服务器怎么做上海seo顾问
  • 移动互联网站设计师淘宝产品关键词排名查询
  • 无极官方网站下载昆山seo网站优化软件
  • 阜宁网站建设seo关键词排名优化app
  • 东莞个人网站制作广告营销包括哪些方面
  • 东莞快速建站平台新网络营销
  • 同行做的好的网站成都网站制作费用
  • 怎么给网站做网站地图重庆seo排名技术
  • 西安做网站找哪家公司好微信指数是搜索量吗
  • 怎么用ps做网站banner如何推广网站方法
  • 番禺网站开发平台百度运营平台
  • 让别人做网站要注意什么外包客服平台
  • 东莞石龙网站建设手机创建网站教程
  • 专门做澳大利亚项目的网站淘宝一个关键词要刷多久
  • 公司网站域名做邮箱网站建设哪家好公司
  • 手机网站地址武汉网站seo德升
  • 怎么删除织梦做的网站黄山网络推广公司
  • 莱芜免费发布信息网廊坊seo管理
  • 做的公司网站风格跟样式和别人一样郑州seo优化阿亮
  • 深圳 b2c 网站建设什么是白帽seo