| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 数据结构与算法 -> 0-1背包(题解) -> 正文阅读 |
|
[数据结构与算法]0-1背包(题解) |
本蒟蒻第二次发题解,
|
物品i | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
---|---|---|---|---|---|---|---|---|---|---|
重量w[i] | 4 | 2 | 9 | 5 | 5 | 8 | 5 | 4 | 5 | 5 |
价值v[i] | 3 | 8 | 18 | 6 | 8 | 20 | 5 | 6 | 7 | 15 |
物品i | 2 | 10 | 6 | 3 | 5 | 8 | 9 | 4 | 7 | 1 |
---|---|---|---|---|---|---|---|---|---|---|
重量w[i] | 2 | 5 | 8 | 9 | 5 | 4 | 5 | 5 | 5 | 4 |
价值v[i] | 8 | 15 | 20 | 18 | 8 | 6 | 7 | 6 | 5 | 3 |
性价比p[i] | 4 | 3 | 2.5 | 2 | 1.6 | 1.5 | 1.4 | 1.2 | 1 | 0.75 |
? ? ? ? (1)数据结构定义:
????????根据算法结构中的结构,先定义结构体Three:
struct Three{
? ? ? ? double w;//每种物品重量
????????double v;//每种物品价值
? ? ? ? double p;//每种物品性价比
}
????????(2)性价比排序:
? ? ? ? ?利用快排函数sort,对性价比进行排序:
sort(begin,end)//参数begin和end表示范围,分别为排序的数组起始地址和尾地址
? ? ? ? 时间复杂度:O(nlogn)
? ? ? ? 空间复杂度:O(n)
? ? ? ? 最后附上AC代码?
?
#include<bits/stdc++.h>
using namespace std;
int f[40][210];
int w[40],c[40];
int main() {
int m,n;
cin>>m>>n;
for(int i=1; i<=n; i++) {
cin>>w[i]>>c[i];
}
for(int i=1; i<=n; i++) {
for(int j=m; j>0; j--) {
if(w[i]>j) {
f[i][j]=f[i-1][j];
} else {
f[i][j]=max(f[i-1][j],f[i-1][j-w[i]]+c[i]);
}
}
}
cout<<f[n][m]<<endl;
return 0;
}
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/25 17:22:31- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |