POJ --1170 -Shopping Offers--DP
来源:互联网 发布:专业麦克风 知乎 编辑:程序博客网 时间:2024/05/22 06:15
五维DP,蛋碎了,,很久不写题解的我也想记下这段优美的代码了
#include<iostream>#include<cstring>#include<cstdio>#define maxn 1000using namespace std;int code[6];//each item's codeint dcode[maxn];//dcode[code]=indexint num[6];//each item's numberint price[6];//each item's priceint sale_item_number[110][6];//each item's number in every special offerint sale_count[110],sale_price[110];//each special offer's item number and special costint n;//tot item in basketint pn;//the number of special offerint dp[6][6][6][6][6];//dp array ,what you understand;void init(){int coode,idx;cin>>n;for(int i=0;i<n;i++){cin>>code[i]>>num[i]>>price[i];dcode[code[i]]=i;}cin>>pn;memset(sale_item_number,0,sizeof(sale_item_number));for(int i=0;i<pn;i++){cin>>sale_count[i];for(int j=0;j<sale_count[i];j++){cin>>coode;idx=dcode[coode];cin>>sale_item_number[i][idx];}cin>>sale_price[i];}}void solve(){memset(dp,-1,sizeof(dp));int i0,i1,i2,i3,i4;int i,j;int & aim=dp[num[0]][num[1]][num[2]][num[3]][num[4]];aim=0;for(i=0;i<5;i++){aim+=num[i]*price[i];}dp[0][0][0][0][0]=0;for(i0=0;i0<=num[0];i0++){for(i1=0;i1<=num[1];i1++){for(i2=0;i2<=num[2];i2++){for(i3=0;i3<=num[3];i3++){for(i4=0;i4<=num[4];i4++){for(i=0;i<=pn;i++){ int & uv =dp[i0][i1][i2][i3][i4]; if(sale_item_number[i][0]>i0|| sale_item_number[i][1]>i1|| sale_item_number[i][2]>i2|| sale_item_number[i][3]>i3|| sale_item_number[i][4]>i4 )continue; int bg= dp[i0-sale_item_number[i][0]] [i1-sale_item_number[i][1]] [i2-sale_item_number[i][2]] [i3-sale_item_number[i][3]] [i4-sale_item_number[i][4]]; if(bg<0)continue; int temp=sale_price[i]+bg; if(uv==-1||temp<uv) { uv=temp; int res=uv+(num[0]-i0)*price[0]+ (num[1]-i1)*price[1]+ (num[2]-i2)*price[2]+ (num[3]-i3)*price[3]+ (num[4]-i4)*price[4]; if(aim==-1||res<aim) { aim=res; } } }}}}}}printf("%d\n",aim);}int main(){freopen("1170.txt","r",stdin);init();solve();return 0;}
- POJ --1170 -Shopping Offers--DP
- 状压dp-poj-1170-Shopping Offers
- Poj 1170 Shopping Offers dp背包
- 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
- 状态压缩DP poj 1170 Shopping Offers 经典题目
- poj - 1170 - Shopping Offers(状态压缩dp)
- POJ 1170 Shopping Offers 状态压缩dp+完全背包
- Hrbust 2099/Poj 1170 Shopping Offers【离散化+Dp】
- POJ 1170 Shopping Offers 笔记
- USACO Shopping Offers, DP
- android4.0联系人添加的源码解析
- 使用WCF 测试客户端测试你的WCF服务
- spring读取配置文件初始化容器操作总结
- 进程与线程的区别和联系
- Apache和Tomcat的区别
- POJ --1170 -Shopping Offers--DP
- 强类型DataSet与普通弱类型DataSet
- RMQ(range maximum/minimum query)算法
- Android中 dp,px,dpi三者之间的关系
- 线程
- lua 基础篇3
- vc中用gnuplot绘图
- spring读取配置文件初始化容器操作总结
- Nginx负载均衡