HDU5543 Pick The Sticks [背包dp变形]

【实战分享】构建企业级RAG(Retrieval-Augmented Generation)知识库的全面实践 大模型指的是训练参数量极其庞大的深度学习模型,如GPT-3、GPT-4等。这些模型能够通过海量的数据学习,具备强大的语言理解和生成能力。在问答系统中,大模型能够理解用户提出的问题,并生成相关的回答。"""添加文档向量"""pass"""相似度检索"""pass"""获取页面分段"""passMilvus是一个开源的向量数据库,专为高效的向量存储和检索设计。Milvus支持多种索引方式(如IVF、HNSW等),并提供高效的查询和检索功能。索引构建:Milvus通过创建索引加速查询速度。 阅读详情

题意: 用一个线性的箱子放黄金, 金条可以露出来一般而不掉出来。问给定金条长度,价值,箱子长度,问最多能放多少金条。
思路: 如果没有可以露出来的限制,那么为裸的01背包问题。现在多了这个限制,是在状态的定义与转移的时候多了几种情况。
状态:dp[i][0/1/2]表示背包容量为i时, [0]表示没有露出来的金条的情况, [1]表示有一边露出来,[2]表示两边都有露出来的ans
决策:
dp[i][0] 只能由 dp[i-w[i]][0]转移
dp[i][1] 可以由 dp[i-w[i]][1]和dp[i-w[i]/2][0]转移
dp[i][2] 可以由 dp[i-w[i]][2]和dp[i-w[i]/2][0/1]转移
边界条件:dp[0][0/1/2] = 0

#include<iostream>
#include<string>
#include<cstdio>
#include<cstring>
#include<bitset>
#include<algorithm>
#include<map>
#include<set>
#include<queue>
#include<vector>
#include<cstdlib>
#include<list>
#include<stack>
#include<cmath>
using namespace std;
typedef long long LL;
LL dp[4015][3];
LL w[2005], v[2005];
int main()
{
    ios::sync_with_stdio(false);
    #ifndef ONLINE_JUDGE
    freopen("input.txt", "r", stdin);
    #endif // ONLINE_JUDGE
    int t;
    cin >> t;
    int Case = 1;
    while(t--)
    {
        int n, m;
        cin >> n >> m;
        m*=2;
        LL mm = 0;
        for(int i = 0; i < n; ++i)
        {
             cin >> w[i] >> v[i];
             w[i]*=2;
             mm = max(mm, v[i]);
        }
        memset(dp, 0, sizeof(dp));
        for(int i = 0; i < n; ++i)
        {
            for(int j = m; j >= w[i]/2; --j)
            {
               for(int k=0;k<=2;k++)
                {
                    if(k>=1)
                        dp[j][k] = max(dp[j-w[i]/2][k-1]+v[i], dp[j][k]);
                    if(j>=w[i])
                    {
                        dp[j][k] = max(dp[j-w[i]][k]+v[i], dp[j][k]);
                    }
                    mm = max(dp[j][k], mm);
                }
            }
        }
        cout << "Case #" << Case++ << ": ";
        cout << mm << endl;
    }
    return 0;
}
YOLOv8改进 | Conv篇:基于FasterBlock与C2f结构的二次创新,参数量下降70万【附保姆级代码】 通过引入FasterBlock二次创新C2f结构,我们成功地对YOLOv8模型进行了优化,显著降低了其参数量,并提升了推理速度,而精度保持不变甚至有所提升。该模型在多个实际应用场景中展现出了优异的性能,尤其是在嵌入式设备、移动端和自动驾驶等领域,具有广泛的应用潜力。未来的研究将进一步优化模型结构,探索更多的应用场景,为目标检测技术的发展做出贡献。 阅读详情

相关推荐

光学仿真案例(4) 基于纳米微粒激发平面波的米氏散射FDTD仿真模拟

本案例展示了一个基于纳米粒子激发平面波的米氏散射仿真模型(mie scattering),计算其散射和吸收截面、局域场增强和远场散射分布,同时将截面和远场结果与解析解进行了比较,验证了仿真模拟的准确性。

q895235273的博客 3591

Pick The Sticks HDU - 5543【变形01背包】

The story happened long long ago. One day, Cao Cao made a special order called “Chicken Rib” to his army. No one got his point and all became very panic. However, Cao Cao himself felt very proud of hi...

qq_41925919的博客 217

从零复刻平衡小车(基于STM32F1)

平衡小车(基于STM32F1)

Legendyyy的博客 5038

hdu 5543 Pick The Sticks(01背包)

Pick The SticksProblem Description The story happened long long ago. One day, Cao Cao made a special order called “Chicken Rib” to his army. No one got his point and all became very panic. However, Ca

Darkarts 580

halcon 查找圆形

先找到大概位置进行拟合,然后再以拟合出的位置作为测量的大概位置进行找圆;

qq_59062726的博客 733

光耦CTR参数实战:如何避免误触发与功耗陷阱(附计算公式)

本文深入解析光耦CTR参数在电路设计中的关键作用,探讨如何平衡误触发风险与功耗表现。通过TLP521、PC817等常见型号的实测数据对比,提供不同工作状态下的选型策略和计算公式,帮助工程师优化设计,提升系统稳定性和能效。

2a4s6d8f0g的博客 323

HDU5543-Pick The Sticks

Pick The Sticks                                                                      Time Limit: 15000/10000 MS (Java/Others)    Memory Limit: 65535/65535 K (Java/Others)                          

wang_128的博客 493

【MATLAB+VScode】VScode调试MATLAB代码的终极指南

本文详细介绍了在VScode中调试MATLAB代码的完整方案。通过配置MATLAB Engine for Python作为桥梁,实现在VScode中设置断点、单步执行、查看变量等交互式调试功能,有效结合了VScode的现代化编辑体验与MATLAB的强大计算内核,显著提升开发效率。

weixin_29161719的博客 412

HDU - 5543 - Pick The Sticks(DP)

Pick The Sticks Time Limit: 15000/10000 MS (Java/Others)    Memory Limit: 65535/65535 K (Java/Others) Total Submission(s): 2484    Accepted Submission(s): 826 Problem Description The story

vloai 363

手把手教你学simulink(8.39)--基于Simulink的步进电机(Stepper Motor)仿真实例

通过这个仿真实例,你可以学习如何使用Simulink构建和仿真步进电机(Stepper Motor)系统。你可以根据实际需求调整模型和参数,进行更复杂的仿真和分析。希望这个例子对你有所帮助,祝你学习愉快!

MHD0815的博客 1050

innovus:addRepeaterByRule用法

我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧?addRepeaterByRule不管transition/timing violation,只根据约束的length/cap/fanout等等去给net 插buffer。

m0_61544122的博客 1088

hdu-5543-Pick The Sticks

Pick The Sticks(题目链接) 这道题其实是01背包的变形。对,掐头去尾就是一个01背包 所以这道题的处理方法其实和01背包很像! 但是难点还在。就是如何处理头和尾 我第一次是列举出所有的头,特殊处理 wa了。自己还是没有理解背包。犯了同样的错误 详情请点击链接 对于头和尾,只有两个特殊情况,那么和上...

wjhshuai的博客 540

Java Swing教程-16. Swing中的图形绘制

这篇教程介绍了Java Swing中的图形绘制功能,主要内容包括: Graphics类的基本使用 - 介绍了如何重写paintComponent方法实现自定义绘制,以及基本图形绘制方法(线条、矩形、椭圆、多边形等) 文本与图片绘制 - 讲解了文本绘制方法、字体设置和图片加载绘制技术 颜色与字体设置 - 包括预定义颜色、RGB自定义颜色、透明色设置以及字体样式控制 案例实现 - 提供了一个简单绘图程序的框架,支持鼠标绘制不同图形、选择工具和自定义颜色等功能 教程通过代码示例详细演示了各种绘图操作,适合Java

无 232

Hdu 5543 Pick The Sticks(01背包变形)

传送门 题意:给定n个长度为v[i], 价值为w[i]的木棍,问在总长度不超过l的情况下最大价值是多少。限制条件是:两端的木棍可以一半在长度范围内,一半在外面。 ,,,快把评测姬wa穿了也没做出来,,白做那么多背包的题了,,,生气 思路:最多两个木棍可以一半长度在里面,那么放长度为一半的木棍的时候必须确保状态转移的时候不能从之前放的已经有两个木棍放了一半的情况下转移,,我试图用一维dp做,,结...

smilng的博客 195

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

HDU 5543 - Pick The Sticks(01背包变形)

Pick The Sticks Time Limit: 15000/10000 MS (Java/Others)    Memory Limit: 65535/65535 K (Java/Others) Total Submission(s): 2471    Accepted Submission(s): 818 Problem Description The story

Mr_Treeeee的博客 415

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

HDU 5543 Pick The Sticks

01背包变形,需压缩空间 题目可以理解为有两次折叠金条的机会(长度减半,价值不变) dp[k][i][j]:使用 k 次折叠金条的机会,前 i 个金条放入长度为 j 的容器的最大价值 注意最后一个样例,要特判一下 #include #include #include using namespace std; typedef long long ll; const int MAXN =

bufan的博客 314

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

HDU 5543 Pick The Sticks 背包变形 ccpc

题意: 给你一根长为m的两端开口的容器和一些小木棒,每一根小木棒有它的长度和价值,这些小木棒要放入容器中并且每一根小木棒的重心要在容器里面(即可以露出一半的长),问最大价值是多少。 dp[i][j][k]  表示前i个小棒放到长度为j的容器里,其中有k个小棒放在边沿部分(k>=0&&k 遇到容器存放的题应该毫不犹豫的选择背包模型: #include #include #in

became_a_wolf的专栏 359

hdu 5543 Pick The Sticks

http://acm.hdu.edu.cn/showproblem.php?pid=5543问桌子上可以放置的木条的最大价值,木条可以放在两边,重心在上面即可,dpjk 表示剩余容量为j,已经用了k个角的最大价值,则01背包即可。#include<bits/stdc++.h> using namespace std; #define ll long long const int maxn=1e3+1

yp_2013的博客 693

D - Pick The Sticks HDU - 5543(特殊的01背包,dp,放金条超出背包空间)

D - Pick The Sticks HDU - 5543 The story happened long long ago. One day, Cao Cao made a special order called “Chicken Rib” to his army. No one got his point and all became very panic. However, Cao Cao himself felt very proud of his interesting idea and en

Are_you_ready的博客 343

Round Numbers[数位DP][二进制]

题意:确定一个给定区间内二进制0不少于1的数字的个数。 区间范围较大。 首先确定用数位DP,不再是十进制DP,采用二进制数DP。记忆化搜索记录状态dp[pos][num0][num1]表示当前位pos位,之前有num0个二进制0,有num1个二进制1的状态下的答案。 在搜索过程中,注意首位1的位置,如果首位1没有确定,那么前置0是不能计入统计的。//#include<bits/stdc++.h>

Qer的博客 681

背包dp模板

鉴于很多背包模板写的自己觉得不太习惯,封装成了函数并且标注了使用方法 #include using namespace std; int dp[1005]; int w[1005], v[1005];//w表示物品重量, v表示物品价值 int c[1005];// c表示多重背包每件物品的个数 int m,n; //m表示背包容量, n表示物品种类 void zeroonepack(int c

Qer的博客 656

HDU1864 最大报销额 [背包dp-浮点数]

题意是给定最大的报销额度,确定最多能报多少发票。 发票有一些小的限制(坑坑坑) 和 裸01背包的区别在于物体的价值的是浮点数,但此题只需要精确两位小数,所以先*100 再/100处理。#include<iostream> #include<string> #include<cstdio> #include<cstring> #include<bitset> #include<algorithm>

Qer的博客 630

766C Mahmoud and a Message[字符串][简单dp]

C. Mahmoud and a Message time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standard output Mahmoud wrote a message s of lengt

Qer的博客 541

761C Dasha and Password[简单dp]

C. Dasha and Password time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standard output After overcoming the stairs Dasha cam

Qer的博客 525

F(x) [数位DP]

For a decimal number x with n digits (A nA n-1A n-2 … A 2A 1), we define its weight as F(x) = A n * 2 n-1 + A n-1 * 2 n-2 + … + A 2 * 2 + A 1 * 1. Now you are given two numbers A and B, please calculat

Qer的博客 502
上一篇: HYSBZ - 4806 炮 [dp]
下一篇: Dying[二分]
Qer_
博客等级 码龄11年 34粉丝 69原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值