真就普及-是吧
原题链接:3.方差2024-06-29 14:52:12
发布于:上海
看题,好打开python(
递归,启动!
n = int(input())
num_lst = [int(i) for i in input().split(" ")]
all = [num_lst.copy()]
def run(lst,i):
global all
num = lst[i+1]+lst[i-1]-lst[i]
if lst[i-1] <= num and lst[i+1] >= num:
lst[i] = num
if lst.copy() not in all:
all.append(lst.copy())
for i in range(1,n-1):
run(lst.copy(),i)
for i in range(1,n-1):
run(num_lst.copy(),i)
res_lst = []
for num in all:
average = sum(num)/n
res = sum([(i-average)**2 for i in num])*n
res_lst.append(res)
print(int(min(res_lst)))
运行!RE!
?
打开idle
非常好超出最大递归深度!
写nm!
全部评论 5
666
2024-07-04 来自 广东
0[NOIP2021] 方差
题目描述
给定长度为 的非严格递增正整数数列 。每次可以进行的操作是:任意选择一个正整数 ,将 变为 。求在若干次操作之后,该数列的方差最小值是多少。请输出最小值乘以 的结果。
其中方差的定义为:数列中每个数与平均值的差的平方的平均值。更形式化地说,方差的定义为 ,其中 。
输入格式
输入的第一行包含一个正整数 ,保证 。
输入的第二行有 个正整数,其中第 个数字表示 的值。数据保证 。
输出格式
输出仅一行,包含一个非负整数,表示你所求的方差的最小值的 倍。
样例 #1
样例输入 #1
4 1 2 4 6
样例输出 #1
52
样例 #2
样例输入 #2
见附件中的 variance/variance2.in
样例输出 #2
见附件中的 variance/variance2.ans
样例 #3
样例输入 #3
见附件中的 variance/variance3.in
样例输出 #3
见附件中的 variance/variance3.ans
样例 #4
样例输入 #4
见附件中的 variance/variance4.in
样例输出 #4
见附件中的 variance/variance4.ans
提示
【样例解释 #1】
对于 ,第一次操作得到的数列有 ,第二次操作得到的新的数列有 。之后无法得到新的数列。
对于 ,平均值为 ,方差为 。
对于 ,平均值为 ,方差为 。
对于 ,平均值为 ,方差为 。
【数据范围】
测试点编号 对于所有的数据,保证 ,$1 \le a_i \l
2024-07-04 来自 四川
0普及-水题你都做不对?(不是
2024-07-04 来自 广东
0此题实际难度为紫:)
2024-07-01 来自 上海
06
2024-06-29 来自 广东
0
有帮助,赞一个