Poj 1170 Shopping Offers dp背包
来源:互联网 发布:vb object转换 编辑:程序博客网 时间:2024/05/22 05:40
题目链接:http://poj.org/problem?id=1170
题目大意:
样例:
27 3 28 2 521 7 3 52 7 1 8 2 10商店有两种商品,编号为7的商品 要买3件,每件单价为2;编号为8的商品 要买2件,每件单价为5;现在有两种组合优惠,第一种优惠由一种商品组成,即买3件7号物品共5元;第二种优惠由两种商品组成,即买1件7号物品和2件8号物品共10元,(不允许多买)问最小的花费为多少?
解题思路:把每种商品单独看成一个组合,把组合商品看成一个组合,即变成多重背包问题。最多有五类产品,每类最多有五个。
代码如下:
#include<iostream>#include<cstring>#include<cstdio>using namespace std;int d[6][6][6][6][6],p[100][1000],num[100],reduce[100];struct product{ int c,k,r;}a[6];int main(){ int s,n,a1,a2,a3,a4,a5; while(~scanf("%d",&n)) { memset(p,0,sizeof(p)); for(int i=1;i<=n;i++) scanf("%d%d%d",&a[i].c,&a[i].k,&a[i].r); scanf("%d",&s); for(int i=1;i<=s;i++) { scanf("%d",&num[i]); for(int j=1;j<=num[i];j++) { scanf("%d%d",&a1,&a2); p[i][a1]=a2;//第i种组合中a1商品的数量为a2; } scanf("%d",&reduce[i]); } d[0][0][0][0][0]=0; for(a1=0;a1<=a[1].k;a1++) for(a2=0;a2<=a[2].k;a2++) for(a3=0;a3<=a[3].k;a3++) for(a4=0;a4<=a[4].k;a4++) for(a5=0;a5<=a[5].k;a5++) { d[a1][a2][a3][a4][a5]=a1*a[1].r+a2*a[2].r+a3*a[3].r+a4*a[4].r+a5*a[5].r; for(int i=1;i<=s;i++)//遍历每种特价组合 { if(num[i]>n) continue; int b1=a1-p[i][a[1].c]; int b2=a2-p[i][a[2].c]; int b3=a3-p[i][a[3].c]; int b4=a4-p[i][a[4].c]; int b5=a5-p[i][a[5].c]; if(b1<0||b2<0||b3<0||b4<0||b5<0) continue; d[a1][a2][a3][a4][a5]=min(d[a1][a2][a3][a4][a5],d[b1][b2][b3][b4][b5]+reduce[i]); } } printf("%d\n",d[a[1].k][a[2].k][a[3].k][a[4].k][a[5].k]); } return 0;}
0 0
- Poj 1170 Shopping Offers dp背包
- POJ --1170 -Shopping Offers--DP
- POJ 1170 Shopping Offers 状态压缩dp+完全背包
- POJ 1170--Shopping Offers(状压+背包)
- poj 1170 Shopping Offers 完全背包
- 状压dp-poj-1170-Shopping Offers
- POJ 1170 Shopping Offers (状压DP)
- POJ - 1170 Shopping Offers (五维DP)
- poj 1170 shopping offers
- poj 1170 Shopping Offers
- poj 1170 Shopping Offers
- POJ 1170 Shopping Offers
- POJ 1170 Shopping Offers
- poj 1170 Shopping Offers
- POJ 1170 - Shopping Offers
- POj 1170 Shopping Offers(变形背包+进制优化) 100
- POJ-1170 Shopping Offers 状态压缩加背包
- poj 1170 Shopping Offers-动态规划-完全背包
- 使用drawableLeft图片不居中问题
- Code signing Guide代码签名探悉
- Guava缓存器源码分析——LocalCache
- Linux内核的Oops
- Codeforces 363A Soroban(算盘模拟)
- Poj 1170 Shopping Offers dp背包
- 我的搬砖新工具libgdx系列 ----- 1. 写在前面的瞎BB
- 数据库解析——MySQL性能优化的最佳20+条经验
- Guava缓存器源码分析——LocalCache
- insmod 加载模块的过程
- maven+spring+springmvc+mybatis+ajax 框架下实现简单的聊天室
- 应用启动时间-性能测试
- 是看好款式
- Http状态码大全