AcWing 679. 奖品分配 python 复杂度爆炸的辣鸡算法
原题链接
中等
作者:
戈好雨
,
2019-09-30 18:39:27
,
所有人可见
,
阅读 802
import copy
T = int(input())
num_classes = []
scores = [0 for i in range(T)]
for i in range(T):
num_classes.append(int(input()))
a = [0 for i in range(num_classes[-1])]
scores[i] = input().split()
apples = copy.deepcopy(scores)
for i in range(len(scores)):
for u in range(len(scores[i])):
scores[i][u] = int(scores[i][u])
apples[i][u] = 1
answer =[0 for i in range(T)]
for i in range(T):
h = 0
while h <= 1:
for u in range(num_classes[i]):
while scores[i][u]>scores[i][u-1] and apples[i][u]<=apples[i][u-1]:apples[i][u]+=1
for u in range(num_classes[i]-1,-1,-1):
if u == num_classes[i]-1:
while scores[i][u]>scores[i][0] and apples[i][u]<=apples[i][0]:apples[i][u]+=1
if u < num_classes[i]-1:
while scores[i][u]>scores[i][u+1] and apples[i][u]<=apples[i][u+1]:apples[i][u]+=1
for u in range(num_classes[i]):
if u < num_classes[i]-1:
while scores[i][u]>scores[i][u-1] and scores[i][u]>scores[i][u+1] and apples[i][u]<=max(apples[i][u-1],apples[i][u+1]):apples[i][u]+=1
if u == num_classes[i]-1:
while scores[i][u]>scores[i][u-1] and scores[i][u]>scores[i][0] and apples[i][u]<=max(apples[i][u-1],apples[i][0]):apples[i][u]+=1
h+=1
for u in range(num_classes[i]):
answer[i] += apples[i][u]
for i in range(len(answer)):
print(answer[i])
为什么样例这个是8呢?