蓝桥杯python练习第十四天|蛋糕游戏

题目

蓝桥杯python练习第十四天|蛋糕游戏_第1张图片

思路

本题运用到了博弈论的知识,通过分析知道两头牛吃到蛋糕的数量是固定的 

b = (N//2) + 1
e = (N//2) - 1

所以只需要让e吃到两边最大的那一个蛋糕,直到吃完他最多能吃的个数,剩下的就是b吃的了

利用前缀和方便计算
初始代码

N = int(input())
A = list(map(int,input().split()))

b = (N//2) + 1
e = (N//2) - 1
ee = 0

s = [0] * (N+1)

for i in range(1,N):
    s[i] = s[i-1] + A[i]
    
for i in range(e):    
    if A[1] > A[-1]:
        ee += A[1]
        del A[1]
    else:
        ee += A[-1]
        del A[-1]

be = s[N] - ee

print(f'{be} {ee}')

但是结果only返回了前两个数之和和后两个数之和,并没有体现博弈的过程,能力有限,这是我第一次写算法题,希望得到各位大佬的指点

 

你可能感兴趣的:(python,蓝桥杯,小白,游戏,蓝桥杯,算法,python)