传送门
题目操作和属性分析:
- 拥有n本书
- 第i本书的厚度是t[i] (输入的时候给的是n)
- 且这本书的纸张宽度是 w[i]
- 书的厚度是1或2
- 找一些书竖直放置
- 将剩余的书籍水平放置在书上
- 水平放置的书的宽度和不能多余竖直放置的书的总厚度
思路分析:
- 嗯.好这个数据范围还挺小,DP走起来
- 观察一下 不难发现 每本书的状态有两种 放和 不放 (好家伙来吧01背包)
- 观察一下谁是背包容量(限制条件)
- 不难发现 这里最大的长度是限制条件 v[i] 厚度就相当于体积
- 那么厚度就相当于价值呗
- 好假设完成 我们来走一遍
代码实现:
cin>>n;
int sum = 0 ;
for(int i=1;i>v[i]>>w[i];
sum+=v[i];
}
///memset(f,0x3f,sizeof f);
for(int i=1;i=0;i--)
{
if(sum - i>=f[i])
{
ans = sum - i;
break;
}
}
cout
关注
打赏
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?