【51NOD-0】1085 背包问题
2024-08-31 06:32:20
【算法】背包DP
【题解】f[j]=(f[j-w[i]]+v[i]) 记得倒序(一个物品只能取一次)
#include<cstdio>
#include<algorithm>
#include<cstring>
using namespace std;
const int maxn=;
int n,W,w[maxn],v[maxn],f[maxn];
int main()
{
scanf("%d%d",&n,&W);
for(int i=;i<=n;i++)scanf("%d%d",&w[i],&v[i]);
for(int i=;i<=n;i++)
{
for(int j=W;j>=w[i];j--)
{
f[j]=max(f[j],f[j-w[i]]+v[i]);
}
}
printf("%d",f[W]);
return ;
}
最新文章
- OPENWRT开始SFTP支持办法
- [Android Pro] Java进阶学习:jar打包详解
- ffmpeg解码
- 使用.net的Cache框架快速实现Cache操作
- 【C#进阶系列】05 基元类型、引用类型和值类型
- Properties类的用法
- 【转】C++析构函数为什么要为虚函数
- 第十一篇 Material Status设置与测试,制药业案例一则
- 树-二叉平衡树AVL
- C#学习日志 day 6 ------ 常用正则表达式例举
- Linux面试题(2)
- 洛谷P2822 组合数问题
- GetComputerNameEx()
- hdu 1290_献给杭电五十周年校庆的礼物
- python -- 判断给定的参数是否是地理位置的经度和纬度
- oracle 之 插入超长字段并包含&;字符的处理方法
- Pamulinawen--IPA--菲律宾伊洛卡诺语
- jquery滚动事件
- C# an error has occurred while updating the entries.see the log file
- Git 学习笔记--Eclipse Git 插件安装