POJ 3682 (dp)
来源:互联网 发布:手机版 淘宝 人工客服 编辑:程序博客网 时间:2024/06/05 03:49
题意:有n头牛和B高度的书架,牛叠罗汉,需要求出最少的牛的高度和超过或者等于B。
很明显不能用二位的01dp
有一个很好的思路,因为并不知到v[i],我们可以使w[i] == v[i],并且可以把容量大于B,也就是sum>B.这是必然的,不然也是没有意义。
#include<iostream>#include<cstdio>#include<cstring>using namespace std;const int maxn = 21000;int dp[maxn];int n,m;int w[25],sum;int main(){ //freopen("in.txt","r",stdin); scanf("%d%d",&n,&m); sum = 0; memset(dp,0,sizeof(dp)); for(int i = 0;i < n; i++){ scanf("%d",&w[i]); sum += w[i]; } for(int i = 0;i < n; i++){ for(int j = sum;j >= w[i]; j--){ dp[j] = max(dp[j],dp[j-w[i]]+w[i]); } } int i; for(i = 0;i < sum; i++){ if(dp[i] >= m){ break; } } printf("%d\n",dp[i]-m); return 0;}
0 0
- POJ 3682 (dp)
- poj 3682(期望dp)
- poj 1160(dp)
- Poj 2229(dp)
- Poj 2385 (dp)
- Poj 3616 (dp)
- Poj 3280(dp)
- Poj 2392(dp)
- Poj 1631(dp)
- poj 3267(dp)
- Poj 3046(dp)
- POJ 3260(DP)
- poj 2151 (DP)
- POJ-2385(DP)
- POJ-2955(DP)
- POJ-3267(DP)
- poj 1157 (DP)
- POJ-1976(DP)
- NetworkX学习笔记——基本功能使用
- Jprofiler的使用
- First
- NavigationView的使用
- ACM_生成可重集的排序
- POJ 3682 (dp)
- Amdroid中微信支付遇到的问题
- 通信录
- 八皇后GO语言实现
- linux命令行参数解析函数 getopt
- 简单的天气预报app
- 可编辑DIV,输入图片
- Android横屏竖屏切换的问题
- 解决plsql连接oracle服务器(云服务器)自动断开问题