动态规划入门之0-1背包问题与完全背包问题

0-1背包问题


有 N 件物品和一个容量是 V 的背包。每件物品只能使用一次。

第 i 件物品的体积是 vi,价值是 wi。

求解将哪些物品装入背包,可使这些物品的总体积不超过背包容量,且总价值最大。
输出最大价值。

输入格式
第一行两个整数,N,V,用空格隔开,分别表示物品数量和背包容积。

接下来有 N 行,每行两个整数 vi, wi,用空格隔开,分别表示第 i 件物品的体积和价值。

输出格式
输出一个整数,表示最大价值。

数据范围
0<N,V≤1000
0<vi,wi≤1000

输入样例

4 5
1 2
2 4
3 4
4 5

输出样例:

8

 先放代码:

#include<bits/stdc++.h>
using namespace std;

int main()
{
    int n,m;//物品种数和背包体积
    int f[1005][1005];
    int v[1005],w[1005];//物品体积和价值
    
    cin>>n>>m;
    
    for(int i=1;i<=n;i++)
    {
        cin>>v[i]>>w[i];
    }
    
    for(
### QT 中配置 MySQL 的详细方法 在 QT 中配置 MySQL 数据库连接涉及多个步骤,主要包括编译 MySQL 插件以及设置正确的路径。以下是详细的说明: #### 1. 准备工作 确保已安装以下组件: - **QT 开发环境**:例如 Qt Creator 者其他支持的 IDE。 - **MySQL 安装包**:需匹配系统的架构(32 64 位)。如果使用的是 Windows 系统上的 MinGW 编译器,则应下载对应的版本。 对于 MySQL 的具体安装过程可以参考相关文档[^1]。确认 MySQL 已成功安装,并记录其 `lib` 和 `include` 路径位置。 --- #### 2. 修改 MySQL 驱动程序 (qsqlmysql) 进入 QT 源码目录中的 sqldrivers/mysql 子目录,定位到 `mysql.pro` 文件。此文件用于定义构建 MySQL 插件所需的参数。按照以下方式编辑该 `.pro` 文件的内容[^2]: ```plaintext TARGET = qsqlmysql HEADERS += $$PWD/qsql_mysql_p.h SOURCES += $$PWD/qsql_mysql.cpp $$PWD/main.cpp OTHER_FILES += mysql.json PLUGIN_CLASS_NAME = QMYSQLDriverPlugin win32:LIBS += -L$$quote(C:/Program Files/MySQL/MySQL Server 8.0/lib) -llibmysql INCLUDEPATH += $$quote(C:/Program Files/MySQL/MySQL Server 8.0/include) DEPENDPATH += $$quote(C:/Program Files/MySQL/MySQL Server 8.0/include) include(../qsqldriverbase.pri) ``` > 替换其中的路径部分为实际本地 MySQL 的安装路径。例如,如果你的 MySQL 安装在 D:\MySQL\MySQL_Server_8.0 下面,那么 `-L` 参数应该改为 `-LD:/MySQL/MySQL_Server_8.0/lib` ,而 `INCLUDEPATH` 则更改为 `D:/MySQL/MySQL_Server_8.0/include`. --- #### 3. 构建插件 完成上述更改之后,在命令提示符者终端窗口中切换至包含 `mysql.pro` 文件所在的目录执行下列操作来生成动态链接库 (.dll): ##### 使用 MSVC 编译器 如果是通过 Microsoft Visual Studio 提供的支持工具链来进行开发的话, 可以运行如下脚本: ```bash cd G:\QT\QTFile\5.14.2\Src\qtbase\src\plugins\sqldrivers\ qmake -- MYSQL_INCDIR="C:/Program Files/MySQL/MySQL Server 8.0/include" MYSQL_LIBDIR="C:/Program Files/MySQL/MySQL Server 8.0/lib" nmake sub-mysql ``` ##### 对于 MinGW 用户 当采用 GNU GCC 套件作为目标平台时,请尝试这些指令代替 nmake : ```bash cd G:\QT\QTFile\5.14.2\Src\qtbase\src\plugins\sqldrivers\ qmake "INCLUDEPATH+=C:/Program Files/MySQL/MySQL Server 8.0/include" "LIBS+=-LC:/Program Files/MySQL/MySQL Server 8.0/lib -llibmysql" mysql.pro mingw32-make ``` 以上命令会创建名为 `qsqlmysql.dll` 的共享对象文件,将其拷贝到 QT 默认加载插件的位置通常位于 `<Qt_Directory>/plugins/sqldrivers/` 下。 --- #### 4. 测试数据库连接功能 编写简单的测试代码验证是否能够正常访问 MySQL 数据库实例。下面给出了一段 Pythonic 风格伪代码展示如何初始化并建立连接[^3]: ```cpp #include <QCoreApplication> #include <QSqlDatabase> #include <QDebug> int main(int argc, char *argv[]) { QCoreApplication a(argc, argv); // 添加 MySQL 数据库驱动 QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL"); // 设置主机名、用户名、密码及端口等信息 db.setHostName("localhost"); db.setUserName("root"); // 根据实际情况调整 db.setPassword(""); // 密码留空其他值视情况定 db.setPort(3306); // 默认端口号 bool ok = db.open(); if (!ok){ qDebug() << "Error:" << db.lastError().text(); }else{ qDebug()<<"Connected successfully!"; } return a.exec(); } ``` 如果一切顺利,“Connected successfully!” 将打印出来;反之则显示错误消息帮助诊断问题所在。 --- #### 注意事项 - 如果遇到 “QSqlDatabase: QMYSQL driver not loaded” 错误,请检查是否有遗漏任何依赖项未被正确引入项目之中。 - 务必保证所使用的 MySQL 版本与操作系统兼容性一致,避免因 ABI 同引发崩溃现象发生。 ---
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

风铃子加油

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值