首页 > 其他分享 >深信服笔试_拼接木材

深信服笔试_拼接木材

时间:2023-09-25 14:24:22浏览次数:36  
标签:背包 木材 笔试 信服 length 拼接 物品 长度

拼接木材

现在有一批长度不同的木材woods,现在需要将木材进行拼接,正好达到总长度length,在不考虑切割木材,并且每种长度的木材不限量供应情况下,返回满足要求的最少木材数量,如果无法通过组合达到规定长度,则返回-1。

输入描述

木材长度列表和需要达到的总长度length
木材种类:1 <= len(woods) <= 100
木材长度:1 <= woods[i] <=1000
品长及:1 <= length <=10000
输入的2行信息均以字符串形式输入,需要自己转换为列表和整数

输出描述

返回满足要求的最少木材数量,如果无法通过组合达到规定长度,则返回-1

样例

输入

[1, 2, 3, 5]
9

输出

3

思路

这道题其实就是一个完全背包问题

拼接木材 完全背包
木材 物品
长度length 背包容量
木材长度 物品体积
木材数量 物品价值
木材数量最小 物品价值最大

这道题可以说成这样一个背包问题

有n种物品,第i种物品的体积是\(v_i\),每一种物品都有无限个,背包容量为v,所有物品的价值都是1,问:如果把背包恰好装满,最小能装多少价值?如果无法恰好装满,请输出-1

状态转移方程

\[\left( i,v\right) = min\begin{cases}\left( i-1,v\right) \\ \left( i,v-v_{i}\right) + 1\end{cases} \]

其中\((i, v)\)表示考虑前i种物品,恰好可以装满容量为v的背包,能装的最小价值
也就是考虑前i种木材时,恰好可以拼接为长度为v,所需要的最少的木材

woods = [0] + eval(input())
length = int(input())
n = len(woods) - 1

dp = [0.0] + [float('inf')] * length

for i in range(1, n + 1):
    for j in range(1, length + 1):
        if woods[i] <= j:
            dp[j] = min(dp[j], dp[j - woods[i]] + 1)

res = dp[length] if dp[length] != float('inf') else -1
res = int(res)
print(res)

标签:背包,木材,笔试,信服,length,拼接,物品,长度
From: https://www.cnblogs.com/mengzhuo/p/17727837.html

相关文章

  • 这篇文章用来记录面试/笔试中遇到的手撕题
    23.09.24本次笔试手撕题有如下:将一个32位整数按bit翻转,即0-311-302-29...思路:先取出每一位bitx0-15位,进行左移,每个左移(31-i)位31-16位,进行右移,每个右移(i)位反转一个字符串中的单词。整体反转,再找到对应的单词,left和right,然后反转单词两个有序链表合成一个。就是两个......
  • 嵌入式笔试面试刷题(day15)
    (文章目录)前言本篇文章继续讲解嵌入式笔试面试刷题,希望大家坚持跟着我的脚步一起加油冲击大厂offer。一、Linux中的主设备号和次设备号1.查看方法查看主设备号和次设备号方法:首先先进入/dev目录:cd/dev使用下面命令查看:ls-l2.主设备号和次设备号的作用每个设备驱......
  • 笔试_0001(数组A内无重复,如A=[a,b,c])
      publicstaticvoidmain(String[]args){//question1();//question2();System.out.println(~1+1);}privatestaticvoidquestion1(){/*思路,规律:利用字符串的包含和替换。*/......
  • 【漏洞复现】深信服 SG上网优化管理系统 catjs.php 任意文件读取漏洞
    1、简介2、漏洞描述深信服SG上网优化管理系统catjs.php存在任意文件读取漏洞,攻击者通过漏洞可以获取服务器上的敏感文件3、受影响版本深信服SG上网优化管理系统4、FOFA语句title==“SANGFOR上网优化管理”5、漏洞复现POCPOST/php/catjs.phpHTTP/1.1Host:User-A......
  • 微信服务直达配置问题
     鲜花同城配送玫淳自从8月22号前夕花海上去了之后,节日后几天聚联订花又上去了,前后做了很多每天1000,2000都试过排名没任务相应现在想修改服务直达看看,下面是备份  ......
  • 深信服24届秋招算法:所有可能的出栈顺序
    publicclassMain{privatestaticfinalScannerin=newScanner(System.in);publicstaticvoidmain(String[]args)throwsUnsupportedEncodingException{//echo();Strings="abcdef";char[]seq=s.toCharArray......
  • sql server 'IN' 拼接SQL 在C# 中匹配问题
    varsql=@"selectdistincta.Empno,a.Alarmdate,l.Wdat,l.Empno,l.Empnm,l.Depno,l.Depnm,l.Clsno,l.Time1,l.Time2,l.Wtime1,l.Wtime2,l.Latet,l.Erat,l.Offtime,l.Memofrom......
  • 动态内存分配(callco,realloc,笔试题目)2
    相比于malloc加了有一个自动初始化的功能intmain(){ int*p=(int*)calloc(10,sizeof(int));//创建之后就默认数据初始化为0 if(p==NULL) { printf("%s\n",strerror(errno)); } else { inti=0; for(i=0;i<10;i++) { *(p+i)=i; } for(i......
  • php多张图片拼接成长图
     $pic_list=array('images/temp/5.png','images/temp/6.png','images/temp/7.png','https://www.baidu.com/image/202309/202309180921113826.jpg',);functionmergeImage($imgUrls,$saveLocalPath){......
  • 统信服务器1050a自定义镜像制作02
    原文链接:统信服务器1050a自定义镜像制作02hello,大家晚上好啊,今天为大家带来如何制作统信uos服务器操作系统1050a的第二篇文章,基于centos8自定义ISO镜像来学习相对来说是比较快的,今天介绍第二种方法,如何为标准ISO镜像中增加新的rpm包,并在安装系统dde桌面的时候进行安装,操作相对来说......