【秋招笔试题】阵营分配


解法:简单背包题。

python 复制代码
def solve(nums):
    n = len(nums)
    totalSum = sum(nums)

    dp = [[False] * (totalSum // 2 + 1) for _ in range(n + 1)]

    for i in range(n + 1):
        dp[i][0] = True

    for i in range(1, n + 1):
        for j in range(1, totalSum // 2 + 1):
            if nums[i - 1] <= j:
                dp[i][j] = dp[i - 1][j] or dp[i - 1][j - nums[i - 1]]
            else:
                dp[i][j] = dp[i - 1][j]

    minDiff = totalSum
    for j in range(totalSum // 2, -1, -1):
        if dp[n][j]:
            minDiff = totalSum - 2 * j
            break

    return minDiff

if __name__ == "__main__":
    n = int(input())
    nums = list(map(int, input().split()))

    result = solve(nums)
    print(result)
相关推荐
B站_计算机毕业设计之家几秒前
AI大模型:Deepseek美食推荐系统 机器学习 协同过滤推荐算法+可视化 Django框架 大数据毕业设计(源码)✅
python·算法·机器学习·数据分析·django·推荐算法·美食
小草cys2 分钟前
基于大模型的图像目标检测及跟踪算法
人工智能·算法·目标检测
代码游侠14 分钟前
C语言核心概念复习(三)
开发语言·数据结构·c++·笔记·学习·算法
池央20 分钟前
贪心算法-递增的三页子序列
算法·贪心算法
lrh12280021 分钟前
详解K近邻(KNN)算法:原理、实现与优化
算法·机器学习
程途拾光15829 分钟前
算法公平性:消除偏见与歧视的技术探索
大数据·人工智能·算法
秋风战士30 分钟前
无线通信算法之340:信道均衡除法定标讨论
算法·fpga开发·信息与通信
沧澜sincerely33 分钟前
蓝桥杯算法练习
算法·职场和发展·蓝桥杯
一起养小猫36 分钟前
Flutter for OpenHarmony 进阶:手势识别与碰撞检测算法深度解析
算法·flutter·harmonyos
Herbert_hwt38 分钟前
数据结构与算法绪论:为何学、学什么、如何避坑
c语言·数据结构·算法