2024蓝桥杯每日一题(背包2)

备战2024年蓝桥杯 -- 每日一题
Python大学A组

        试题一:包子凑数
        试题二:砝码称重
        试题三:倍数问题


试题一:包子称重

【题目描述】

        小明几乎每天早晨都会在一家包子铺吃早餐。他发现这家包子铺有 N 种蒸笼,其中第 i 种蒸笼恰好能放 Ai 个包子。每种蒸笼都有非常多笼,可以认为是无限笼。每当有顾客想买 X 个包子,卖包子的大叔就会迅速选出若干笼包子来,使得这若干笼中恰好一共有 X 个包子。比如一共有 3 种蒸笼,分别能放3、4 和 5 个包子。当顾客想买 11个包子时,大叔就会选 2 笼 3 个的再加 1 笼 5 个的(也可能选出 1 笼 3 个的再加 2笼 4 个的)。当然有时包子大叔无论如何也凑不出顾客想买的数量。比如一共有 33 种蒸笼,分别能放 4、5和 6 个包子。而顾客想买 7 个包子时,大叔就凑不出来了。小明想知道一共有多少种数目是包子大叔凑不出来的。

【输入格式】

        第一行包含一个整数 N。

        接下来 N 行,每行包含一个整数 Ai。

【输出格式】

        输出一个整数代表答案。

        如果凑不出的数目有无限多个,输出INF。

【数据范围】

        1≤N≤100
        1≤Ai≤100

【输入样例】

2
4
5

【输出样例】

6

【解题思路】

        容易看出是完全背包的变形,有几个物品,每个物品无限个,每个物品选任意个,能否凑到某个重量。题目说会出现有无限个数被凑不出来的, 说明这些数的gcd不是1。gcd为1呢?最大不能表示出来的数必定有个上界,因为两个数a,b(当gcd=1时),最大不能表示出来的数是:(a−1)(b−1)−1。当数字更多的时候,这个上界必然更小(可选的数字变多了),而99和98是100内最大的互质的数,所以这个上界选择10000。

【Python程序代码】

from math import *
n = int(input())
w = [0] + list(map(int,input().split()))
res = sum(w)
f = [[0]*(2*10**5+10) for _ in range(110)]
f[0][0]=1
for i in range(1,n+1):f[i][w[i]]=1for j in range(1,sum(w)+1):t = j-w[i]if t<0:t=-tf[i][j] += f[i-1][j] + f[i-1][j+w[i]] + f[i-1][t]
ans = 0
for i in range(1,sum(w)+1):if f[n][i]:ans+=1
print(ans)

试题二:砝码称重

【题目描述】

        你有一架天平和 N个砝码,这 N 个砝码重量依次是 W1,W2,⋅⋅⋅,WN。请你计算一共可以称出多少种不同的正整数重量?注意砝码可以放在天平两边。

【输入格式】

        输入的第一行包含一个整数 N。

        第二行包含 N 个整数:W1,W2,W3,⋅⋅⋅,WN。

【输出格式】

        输出一个整数代表答案。

【数据范围】

        对于 50% 的评测用例,1≤N≤15。
        对于所有评测用例,1≤N≤100,N 个砝码总重不超过 105。

【输入样例】

3
1 4 6

【输出样例】

10

【样例解释】

【解题思路】 

        可以看出是01背包的变形,在放与不放中的放中变成了放左边还是放右边,假设左边固定是物品,f[i][j]表示前i个砝码称体重为j的物体是否成功。所以当选择不放第i个物体时f[i-1][j],选择放左边时f[i-1][j+w[i]],选择放右边时f[i-1][ j-w[i] ]三种状态转移过来,初始化f[0][0]=1同时f[i][w[i]]=1。

【Python程序代码】

from math import *
n = int(input())
w = [0] + list(map(int,input().split()))
res = sum(w)
f = [[0]*(2*10**5+10) for _ in range(110)]
f[0][0]=1
for i in range(1,n+1):f[i][w[i]]=1for j in range(1,sum(w)+1):t = j-w[i]if t<0:t=-tf[i][j] += f[i-1][j] + f[i-1][j+w[i]] + f[i-1][t]
ans = 0
for i in range(1,sum(w)+1):if f[n][i]:ans+=1
print(ans)

试题三:倍数问题

【题目描述】

        众所周知,小葱同学擅长计算,尤其擅长计算一个数是否是另外一个数的倍数。但小葱只擅长两个数的情况,当有很多个数之后就会比较苦恼。现在小葱给了你 n 个数,希望你从这 n 个数中找到三个数,使得这三个数的和是 K 的倍数,且这个和最大。数据保证一定有解。

【输入格式】

        第一行包括 2 个正整数 n, K。

        第二行 n 个正整数,代表给定的 n 个数。

【输出格式】

        输出一行一个整数代表所求的和。

【数据范围】

        1≤n≤105,
        1≤K≤103,
        给定的 n 个数均不超过 108

【输入样例】

4 3
1 2 3 4

【输出样例】

9

【解题思路】

        这也是01背包的变形,不过还控制了选择的数量,因为是选三个数同时n的范围比k的范围大很多,所以可以优化一下n,也就是只取a[i]%k前三大的数,所以第一维枚举压缩到了k*3,第二维枚举三位数,从3开始枚举(主要原因是只用二维空间存储)只能从大的开始枚举,否则会出现重复。最后一维度枚举余数。具体看代码表述。

【Python程序代码】

n,K = map(int,input().split())
a = list(map(int,input().split()))
a.sort(reverse=True)
mp = [[]for _ in range(K+5)]
for i in range(len(a)):mp[a[i]%K].append(a[i])
f = [[-1e9]*(K+5) for _ in range(5)]
f[0][0]=0
for i in range(K):for u in range(0,min(3,len(mp[i]))):t = mp[i][u]for j in range(3,0,-1):for k in range(K):f[j][k] = max(f[j][k],f[j-1][ (k-i+K)%K ]+t)
print(f[3][0])

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/777572.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

R语言做两次分类,再做两两T检验,最终输出均值和pvalue

1.输入文件&#xff1a; 2.代码&#xff1a; setwd("E:/R/Rscripts/rG4相关绘图")# 加载所需的库 library(tidyverse)# 读取CSV文件 data <- read.csv("box-cds-ABD-不同类型rg4-2.csv", stringsAsFactors FALSE)# 组合Type1和Type2&#xff1a;通过…

iOS —— 初识KVO

iOS —— 初始KVO KVO的基础1. KVO概念2. KVO使用步骤注册KVO监听实现KVO监听销毁KVO监听 3. KVO基本用法4. KVO传值禁止KVO的方法 注意事项&#xff1a; KVO的基础 1. KVO概念 KVO是一种开发模式&#xff0c;它的全称是Key-Value Observing (观察者模式) 是苹果Fundation框架…

UE小:基于UE5的两种Billboard material(始终朝向相机材质)

本文档展示了两种不同的效果&#xff0c;分别是物体完全朝向相机和物体仅Z轴朝向相机。通过下面的演示和相关代码&#xff0c;您可以更加直观地理解这两种效果的差异和应用场景。 1. 完全朝向相机效果 此效果下&#xff0c;物体将完全面向相机&#xff0c;不论相机在哪个角度…

STM32学习和实践笔记(3): 使用库函数点亮LED后的学习总结

依照教程&#xff0c;做完了第一个试验&#xff0c;使用库函数点亮LED&#xff0c;如下: 总结一下一些要点&#xff1a; 一&#xff0c;要记得指明各头文件的查找路径&#xff0c;方法如下图&#xff1a; 二&#xff0c;使用库函数来编程相当方便高效&#xff0c;要学会查找对…

八大技术趋势案例(云计算大数据)

科技巨变,未来已来,八大技术趋势引领数字化时代。信息技术的迅猛发展,深刻改变了我们的生活、工作和生产方式。人工智能、物联网、云计算、大数据、虚拟现实、增强现实、区块链、量子计算等新兴技术在各行各业得到广泛应用,为各个领域带来了新的活力和变革。 为了更好地了解…

QT控件之输入窗口控件

Qt Designer窗口部件提供的面板中&#xff0c;提供了16种输入部件 &#xff08;1&#xff09;QComboBox继承QWidget类&#xff0c;被QFontComboBox类继承。通常用于用户显示选项列表的 方法&#xff0c;这种方法占用最少的屏幕空间。 &#xff08;2&#xff09;QFontComboBox继…

CI/CD实战-jenkins结合ansible

配置主机环境 在jenkins上断开并删除docker1节点 重新给master添加构建任务 将server3&#xff0c;server4作为测试主机&#xff0c;停掉其上后面的docker 在server2&#xff08;jenkins&#xff09;主机上安装ansible 设置jenkins用户到目标主机的免密 给测试主机创建用户并…

百度智能小程序源码系统简洁版 SEO关键词排名推广优化 带完整的安装代码包以及搭建教程

移动互联网的快速发展&#xff0c;小程序以其轻量级、无需下载、即用即走的特点&#xff0c;迅速成为了各大平台争相推广的重要产品形态。百度智能小程序作为百度生态下的重要一环&#xff0c;凭借其强大的流量入口和丰富的功能组件&#xff0c;为开发者提供了广阔的创作空间。…

设计模式之外观模式解析

外观模式 1&#xff09;概述 1.问题 在软件开发中&#xff0c;为完成一项较为复杂的功能&#xff0c;一个客户类需要和多个业务类交互&#xff0c;而这些需要交互的业务类经常会作为一个整体出现&#xff0c;由于涉及到的类比较多&#xff0c;导致使用时代码较为复杂。 2.作…

吴恩达机器学习笔记 三十 什么是聚类 K-means

聚类(clustering)是一种无监督学习算法&#xff0c;关注多个数据点并自动找到相似的数据点&#xff0c;在数据中找到一种特定的结构。无监督学习算法的数据集中没有标签 y &#xff0c;所以不能说哪个是“正确的 y ”。 K-means算法 K-means算法就是在重复做两件事&#xff1a…

北斗短报文+4G应急广播系统:实时监控 自动预警 保护校园安全的新力量

安全无小事&#xff0c;生命重如山。学生是祖国的未来&#xff0c;校园安全是全社会安全工作的一个重要的组成部分。它直接关系到青少年学生能否安健康地成长&#xff0c;关系到千千万万个家庭的幸福安宁和社会稳定。 灾害事故和突发事件频频发生&#xff0c;给学生、教职员工…

linux编程--文件系统处理常用函数

文件系统 这一个课程的笔记 文件存储相关的概念 文件描述主要有两个inode和dentry inode 是一个结构体, 里面有这一个文件的权限, 类型, 大小, 时间, 用户, 盘块位置之类的信息, 这一个是文件属性的管理结构 文件名是单独存储的, 可以使用inode的编号找到这一个结构体 创建一…

边缘计算AI盒子目前支持的AI智能算法、视频智能分析算法有哪些,应用于大型厂矿安全生产风险管控

一、前端设备实现AI算法 主要是基于安卓的布控球实现&#xff0c;已有的算法包括&#xff1a; 1&#xff09;人脸&#xff1b;2&#xff09;车牌&#xff1b;3&#xff09;是否佩戴安全帽&#xff1b;4&#xff09;是否穿着工装&#xff1b; 可以支持定制开发 烟雾&#xf…

HarmonyOS入门--ArkTS--基本语法

文章目录 ArkTSArkTS声明式开发范式的基本组成基本语法声明式UI创建组件配置属性配置事件配置子组件 自定义组件基本结构成员函数/变量build()函数自定义组件通用样式自定义组件的创建和渲染流程自定义组件重新渲染自定义组件的删除 Builder装饰器全局自定义构建函数组件内部的…

【NLP笔记】大模型prompt推理(提问)技巧

文章目录 prompt概述推理&#xff08;提问&#xff09;技巧基础prompt构造技巧进阶优化技巧prompt自动优化 参考链接&#xff1a; Pre-train, Prompt, and Predict: A Systematic Survey of Prompting Methods in Natural Language Processing预训练、提示和预测&#xff1a;NL…

软件杯 深度学习+python+opencv实现动物识别 - 图像识别

文章目录 0 前言1 课题背景2 实现效果3 卷积神经网络3.1卷积层3.2 池化层3.3 激活函数&#xff1a;3.4 全连接层3.5 使用tensorflow中keras模块实现卷积神经网络 4 inception_v3网络5 最后 0 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 &#x1f6a9; *…

基于单片机产品数量自动计量智能系统设计

**单片机设计介绍&#xff0c;基于单片机产品数量自动计量智能系统设计 文章目录 一 概要二、功能设计设计思路 三、 软件设计原理图 五、 程序六、 文章目录 一 概要 基于单片机产品数量自动计量智能系统设计是一个融合了单片机技术、传感器技术和自动控制技术的综合性项目。…

uniApp使用XR-Frame创建3D场景(8)粒子系统

上篇文章讲述了如何将XR-Frame作为子组件集成到uniApp中使用 本片我们详细讲解一下xr-frame的粒子系统 先看源码 <xr-scene render-system"alpha:true" bind:ready"handleReady"> <xr-node visible"{{sec8}}"><xr-asset-load t…

基于ssm的线上旅行信息管理系统论文

摘 要 随着旅游业的迅速发展&#xff0c;传统的旅行信息查询管理方式&#xff0c;已经无法满足用户需求&#xff0c;因此&#xff0c;结合计算机技术的优势和普及&#xff0c;特开发了本线上旅行信息管理系统。 本论文首先对线上旅行信息管理系统进行需求分析&#xff0c;从系…

将ENVI的roi转为mask图像

方法1&#xff1a; 直接使用ENVI step1: 将roi文件存储为.roi格式 [1] 链接: link step2: 将.roi转为mask [2] 链接: link [3] 链接: link 方法2&#xff1a; 使用Matlab step1: 将roi文件存储为.xlm 文件 step2&#xff1a;针对把每个roi存储为一个单独文件 [4] 读取xlm文…