#P4625.第2题-大模型训练显存优化算法

第2题-大模型训练显存优化算法 - problem_ide - CodeFun2000

动态规划

python 复制代码
import sys
import numpy
def solve():
    data = sys.stdin.read().split()
    if not data:
        return
    
    m = int(data[0])
    n = int(data[1])

    space = [int(x) for x in data[2 : n+2]]
    swap = [int(x) for x in data[n+2 : 2*n+2]]
    price = [int(x) for x in data[2*n+2 : 3*n+2]]

    cost = [min(swap[i], price[i]) for i in range(n)]

    # 3. 初始化 DP 数组
    INF = float('inf')
    dp = [INF] * (m + 1)
    dp[0] = 0

    for i in range(n):

        for j in range(m,-1,-1):
            if dp[j] != INF:
                nj = j + space[i]
                if j + space[i]>= m:
                    nj = m
                
                if dp[j]+cost[i]<dp[nj]:
                    dp[nj] = dp[j]+cost[i]
    
    if dp[m]==INF:
        print('error')
    else:
        print(dp[m])

if __name__=='__main__':
    solve()

                

递归(超时)

python 复制代码
import sys
import numpy


    
def solve():
    data = sys.stdin.read().split()
    if not data:
        return
    
    m = int(data[0])
    n = int(data[1])

    space = [int(x) for x in data[2 : n+2]]
    swap = [int(x) for x in data[n+2 : 2*n+2]]
    price = [int(x) for x in data[2*n+2 : 3*n+2]]

    cost = [min(swap[i], price[i]) for i in range(n)]

    def dfs(step,now_weight,now_cost):
        if step==n:
            global ans
            if now_weight>=m:
                if ans == -1:
                    ans = now_cost
                else:
                    ans = min(ans,now_cost)
            
            return
        
        dfs(step+1,now_weight,now_cost)
        dfs(step+1,now_weight+space[step],now_cost+cost[step])
    
    dfs(0,0,0)
    if ans==-1:
        print('error')
    else:
        print(ans)
        



if __name__=='__main__':
    ans = -1
    solve()

                
相关推荐
_清歌11 小时前
DSpark 深度解读:DeepSeek-V4 如何用「半自回归」把推理速度提升 85%
算法
统计实现局11 小时前
SVD 的三步走:双对角化、Givens 收敛、排序
算法
躬行见万象11 小时前
《VLA 系列》UniLab 强化训练 | G1 机器人 |复现
算法
统计实现局11 小时前
对称不定分解(Bunch-Kaufman):为什么 Cholesky 不够用
算法
统计实现局11 小时前
dqrsl 拆解:拿着 QR 结果能算出哪 5 种东西
算法
统计实现局11 小时前
为什么 Cholesky 求逆比 Gauss-Jordan 快一倍——行列式溢出防护详
算法
To_OC1 天前
LC 994 腐烂的橘子:人人都说是 BFS 入门题,我却写了三遍才过
javascript·算法·leetcode
金銀銅鐵1 天前
[Python] 扩展欧几里得算法
python·数学·算法
To_OC1 天前
LC 200 岛屿数量:经典 DFS 入门题,我第一次写居然连方向都搞错了
javascript·算法·leetcode