【必看】DP经典类型题详解-考前刷分技巧

2024-02-26 02:28

本文主要是介绍【必看】DP经典类型题详解-考前刷分技巧,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

点赞关注不迷路!

1.装箱问题

P1049 [NOIP2001 普及组] 装箱问题 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)

代码

// 洛谷 P1049
// 原题地址 https://www.luogu.com.cn/problem/P1049
#include <iostream>
#include <bits/stdc++.h>
using namespace std;
int v;//容积
int n;//物品数
int a[35];
bool b[20005];//打钩数组
int main(){cin>>v>>n;for(int i=1;i<=n;i++){cin>>a[i];}b[0]=1;//必要边界for(int i=1;i<=n;i++){for(int j=v;j>=a[i];j--){if(b[j-a[i]]){b[j]=1;}}}for(int i=v;i>=0;i--){if(b[i]){cout<<(v-i)<<endl;return 0;}}return 0;
}

2.LIS(longest increasing sequence)最长上升子序列

B3637 最长上升子序列 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)

代码

// 洛谷 B3637
// 原题地址:https://www.luogu.com.cn/problem/B3637
#include <iostream>
#include <bits/stdc++.h>
using namespace std;
int n;
int a[5005];
int f[5005];
int main(){cin>>n;for(int i=1;i<=n;i++){f[i]=1;cin>>a[i];}for(int i=2;i<=n;i++){int maxv=0;for(int j=1;j<i;j++){if(a[i]>a[j]&&f[j]>maxv){maxv=f[j];}}f[i]+=maxv;}int maxv=0;for(int i=1;i<=n;i++){maxv=max(maxv,f[i]);}cout<<maxv<<endl;return 0;
}

3.贴邮票问题

P2725 [USACO3.1] 邮票 Stamps - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)

代码

//P2725 [USACO3.1] 邮票 Stamps
//https://www.luogu.com.cn/problem/P2725
//63 points
#include <iostream>
#include <bits/stdc++.h>
using namespace std;
int n,k;
int a[55];
int num[10005];
int main(){cin>>k>>n;int maxv=0;for(int i=1;i<=n;i++){cin>>a[i];num[a[i]]=1;maxv=max(maxv,a[i]);}int big=maxv;for(int i=2;i<=k;i++){for(int j=big;j>=1;j--){if(num[j]==1){for(int k=1;k<=n;k++){num[j+a[k]]=1;}}}big=i*maxv;}int i=1;while(num[i]==1) i++;cout<<i-1<<endl;return 0;
}

这篇关于【必看】DP经典类型题详解-考前刷分技巧的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/747450

相关文章

Redis 的 SUBSCRIBE命令详解

《Redis的SUBSCRIBE命令详解》Redis的SUBSCRIBE命令用于订阅一个或多个频道,以便接收发送到这些频道的消息,本文给大家介绍Redis的SUBSCRIBE命令,感兴趣的朋友跟随... 目录基本语法工作原理示例消息格式相关命令python 示例Redis 的 SUBSCRIBE 命令用于订

使用Python批量将.ncm格式的音频文件转换为.mp3格式的实战详解

《使用Python批量将.ncm格式的音频文件转换为.mp3格式的实战详解》本文详细介绍了如何使用Python通过ncmdump工具批量将.ncm音频转换为.mp3的步骤,包括安装、配置ffmpeg环... 目录1. 前言2. 安装 ncmdump3. 实现 .ncm 转 .mp34. 执行过程5. 执行结

Python中 try / except / else / finally 异常处理方法详解

《Python中try/except/else/finally异常处理方法详解》:本文主要介绍Python中try/except/else/finally异常处理方法的相关资料,涵... 目录1. 基本结构2. 各部分的作用tryexceptelsefinally3. 执行流程总结4. 常见用法(1)多个e

SpringBoot日志级别与日志分组详解

《SpringBoot日志级别与日志分组详解》文章介绍了日志级别(ALL至OFF)及其作用,说明SpringBoot默认日志级别为INFO,可通过application.properties调整全局或... 目录日志级别1、级别内容2、调整日志级别调整默认日志级别调整指定类的日志级别项目开发过程中,利用日志

Java中的抽象类与abstract 关键字使用详解

《Java中的抽象类与abstract关键字使用详解》:本文主要介绍Java中的抽象类与abstract关键字使用详解,本文通过实例代码给大家介绍的非常详细,感兴趣的朋友跟随小编一起看看吧... 目录一、抽象类的概念二、使用 abstract2.1 修饰类 => 抽象类2.2 修饰方法 => 抽象方法,没有

MySQL8 密码强度评估与配置详解

《MySQL8密码强度评估与配置详解》MySQL8默认启用密码强度插件,实施MEDIUM策略(长度8、含数字/字母/特殊字符),支持动态调整与配置文件设置,推荐使用STRONG策略并定期更新密码以提... 目录一、mysql 8 密码强度评估机制1.核心插件:validate_password2.密码策略级

从入门到精通详解Python虚拟环境完全指南

《从入门到精通详解Python虚拟环境完全指南》Python虚拟环境是一个独立的Python运行环境,它允许你为不同的项目创建隔离的Python环境,下面小编就来和大家详细介绍一下吧... 目录什么是python虚拟环境一、使用venv创建和管理虚拟环境1.1 创建虚拟环境1.2 激活虚拟环境1.3 验证虚

详解python pycharm与cmd中制表符不一样

《详解pythonpycharm与cmd中制表符不一样》本文主要介绍了pythonpycharm与cmd中制表符不一样,这个问题通常是因为PyCharm和命令行(CMD)使用的制表符(tab)的宽... 这个问题通常是因为PyCharm和命令行(CMD)使用的制表符(tab)的宽度不同导致的。在PyChar

sky-take-out项目中Redis的使用示例详解

《sky-take-out项目中Redis的使用示例详解》SpringCache是Spring的缓存抽象层,通过注解简化缓存管理,支持Redis等提供者,适用于方法结果缓存、更新和删除操作,但无法实现... 目录Spring Cache主要特性核心注解1.@Cacheable2.@CachePut3.@Ca

Python中Json和其他类型相互转换的实现示例

《Python中Json和其他类型相互转换的实现示例》本文介绍了在Python中使用json模块实现json数据与dict、object之间的高效转换,包括loads(),load(),dumps()... 项目中经常会用到json格式转为object对象、dict字典格式等。在此做个记录,方便后续用到该方