当前位置: 首页 > article >正文

蓝桥杯之冲刺

文章目录

  • 动态规划
    • 01背包
      • 小练一下
    • 网格图上的DP

动态规划

在这里插入图片描述
在这里插入图片描述

01背包

在这里插入图片描述
由于不能拆开,那就是DP 问题,如果能拆开,那就是贪心问题

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

小练一下

在这里插入图片描述

import os
import sys

# 请在此输入您的代码

N,V = map(int,input().split())

w = []
v = []
w.append(0)
v.append(0)

for i in range(N):
  a,b = map(int,input().split())
  w.append(a)
  v.append(b)

dp = [[0]*(V+1) for _ in range(N+1)]

for i in range(1,N+1):# 取出第i 个物品
  for j in range(V+1):

    if j-w[i]<0:
      dp[i][j]=dp[i-1][j]
    else:
      dp[i][j]=max(dp[i-1][j],dp[i-1][j-w[i]]+v[i])

print(dp[N][V])


在这里插入图片描述
在这里插入图片描述

  • 可以对空间进行优化:只用添加两个变量来存储new,old 就是利用滚动数组,两个数组即可解决

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

import os
import sys

V = int(input())#####箱子容量
n = int(input())####物品数量
l = [0]####各自体积
for i in range(n):####输入体积
  l.append(int(input()))
dp = [[0 for j in range(V+1)]for i in range(n+1)]

for i in range(1,n+1):###
  for j in range(1,V+1):####
    if j < l[i]:####
      dp[i][j] = dp[i-1][j]
    else:
      dp[i][j]=max(dp[i-1][j],dp[i-1][j-l[i]]+l[i])###
print(V-dp[n][V])

同样的思路:还是用二维数组存储,dp[i][j]表示 前i 个物体在空间j 的情况下,所能放的空间的大小

网格图上的DP


http://www.kler.cn/a/274097.html

相关文章:

  • C++(7)—inline和nullptr
  • MySQL45讲 第三十六讲 为什么临时表可以重名?——阅读总结
  • 运行Zr.Admin项目(后端)
  • cesium入门学习二
  • 谷歌Gemini与Anthropic Claude对比测试引发争议:AI竞赛暗流涌动
  • 条款17 理解特殊成员函数的生成
  • 为什么线程通信的方法 wait(), notify()和 notifyAll()被定义在 Object 类里?为什么他们必须在同步方法或者同步块中被调用?
  • 码云使用 创建项目
  • 数据结构(三)复杂度的深层次剖析
  • 基于tcp协议的网络通信(基础echo版.多进程版,多线程版,线程池版),telnet命令
  • 【No.8】蓝桥杯工具函数模板|迭代器|vector|queue|map|set|银行问题|费里的语言|快递分拣(C++)
  • 携程Kar98k/hotelUuidKey算法分析
  • Stable Diffusion + Segment Anything试用
  • RocketMQ发送和接收方式详解
  • 从基础入门到学穿C++
  • <JavaEE> 了解网络层协议 -- IP协议
  • 【蓝桥杯每日一题】填充颜色超详细解释!!!
  • AWS监控,AWS 性能监控工具
  • 【日常记录】【插件】使用ColorThief,跟随图片变化改变网页背景
  • JDK1.8超详细安装教程
  • Json Web Token(JWT) 快速入门
  • Android 13 源码编译及报错修复
  • 【C++庖丁解牛】继承的概念及定义 | 继承中的作用域 | 继承与友元继承与静态成员 | 复杂的菱形继承及菱形虚拟继承
  • Ubuntu双系统/home分区扩容
  • 期权希腊字母
  • clipboard好用的复制剪切库