AcWing刷题-游戏

游戏


DP

python 复制代码
l = lambda: [int(x) for x in input().split()]

n = l()[0]
w = [0]
while len(w) <= n:
	w += l()

s = [0] * (n + 1)
for i in range(1, n + 1): 
    s[i] = s[i - 1] + w[i]

f = [[0] * (n + 1) for _ in range(n + 1)]

for i in range(1, n + 1): 
    f[i][i] = w[i]

for length in range(2, n + 1):
  for i in range(1, n - length + 2):
    j = i + length - 1
    # 取最优解
    f[i][j] = max(
      s[j] - s[i - 1] - f[i + 1][j],
      s[j] - s[i - 1] - f[i][j - 1]
    )

print(f[1][n], s[n] - f[1][n])
相关推荐
for_ever_love__2 分钟前
python爬虫: GET请求与POST请求
开发语言·爬虫·python·网络编程
张文君9 分钟前
ubuntu26.04坏块分区隔离急速版
java·前端·python
positive_zpc13 分钟前
进阶数据结构图——最小生成树(一)
数据结构·算法·图论
茉莉玫瑰花茶15 分钟前
知识库的构建 [ 3 ]
开发语言·python
旧梦952717 分钟前
Java 枚举类详解:从基础语法到高级用法
java·开发语言·python
yivifu18 分钟前
查拼音程序升级版
开发语言·python
码完就睡23 分钟前
数据结构——遍历二叉树
数据结构·算法
2601_9621741726 分钟前
Spring 核心技术解析【纯干货版】- XI:Spring 数据访问模块 Spring-Oxm 模块精讲
数据库·python·spring
evans在进步26 分钟前
LeetCode 238 除自身以外数组的乘积:前缀积与后缀积详解
算法·leetcode·职场和发展
Brilliantwxx35 分钟前
【C++】初入嵌入式C++复习-----经典面试题100道
开发语言·c++·算法·面试·职场和发展