五维DP,听着挺多的,貌似就是挺裸的dp,

最近貌似做简单的DP挺顺手。。1A

dp[i][j][e][o][g] = min(dp[i][j][e][o][g],dp[i-i1][j-i2][e-i3][o-i4][g-i5]+p[q])  i1,i2...为满足给出的商品数量的值 p[q]为选用当前优惠方案的价格。

 1 /*
 2     ID: shangca2
 3     LANG: C++
 4     TASK: shopping
 5  */
 6 #include <iostream>
 7 #include<cstdio>
 8 #include<cstring>
 9 #include<algorithm>
10 #include<stdlib.h>
11 using namespace std;
12 #define INF 0xfffffff
13 int dp[6][6][6][6][6];
14 struct node
15 {
16     int c[6],k[6],p,n;
17 }pp[110];
18 int c[6],k[6],p[6];
19 int main()
20 {
21     freopen("shopping.in","r",stdin);
22     freopen("shopping.out","w",stdout);
23     int i,j,s,b,e,o,g,q,a;
24     for(i =0 ; i <= 5 ; i++)
25         for(j = 0 ; j <= 5 ; j++)
26             for(e = 0 ; e <= 5 ; e++)
27                 for(o = 0 ; o <= 5 ; o++)
28                     for(g = 0 ; g <= 5 ; g++)
29                     dp[i][j][e][o][g] = INF;
30     cin>>s;
31     for(i = 1; i <= s ; i++)
32     {
33         cin>>pp[i].n;
34         for(j = 1; j <= pp[i].n ; j++)
35         cin>>pp[i].c[j]>>pp[i].k[j];
36         cin>>pp[i].p;
37     }
38     cin>>b;
39     for(i =  1; i <= b ;i++)
40     cin>>c[i]>>k[i]>>p[i];
41     for(i = 0 ;i <= k[1] ; i++)
42     for(j = 0; j <= k[2] ; j++)
43     for(e = 0; e <= k[3] ; e++)
44     for(o = 0 ; o <= k[4] ;o++)
45     for(g = 0 ; g <= k[5] ; g++)
46     {
47         dp[i][j][e][o][g] = i*p[1]+j*p[2]+e*p[3]+o*p[4]+g*p[5];
48         for(q = 1; q <= s ; q++)
49         {
50             int i1=0,i2=0,i3=0,i4=0,i5=0;
51             for(a = 1; a <= pp[q].n ;a++)
52             {
53                 if(pp[q].c[a]==c[1])
54                 i1 = pp[q].k[a];
55                 else if(pp[q].c[a]==c[2])
56                 i2 = pp[q].k[a];
57                 else if(pp[q].c[a]==c[3])
58                 i3 = pp[q].k[a];
59                 else if(pp[q].c[a]==c[4])
60                 i4 = pp[q].k[a];
61                 else
62                 i5 = pp[q].k[a];
63             }
64             if(i-i1>=0&&j-i2>=0&&e-i3>=0&&o-i4>=0&&g-i5>=0)
65             {
66                 dp[i][j][e][o][g] = min(dp[i][j][e][o][g],dp[i-i1][j-i2][e-i3][o-i4][g-i5]+pp[q].p);
67             }
68         }
69     }
70     cout<<dp[k[1]][k[2]][k[3]][k[4]][k[5]]<<endl;
71     return 0;
72 }

View Code

转载于:https://www.cnblogs.com/shangyu/p/3271744.html

USACO3.32Shopping Offers(DP)相关推荐

  1. USACO3.15stamps(dp)

    对dp很无奈..枚举所有可能达到的值 dp[i]表示到达i值所用最少的邮票 1 /* 2 ID: shangca2 3 LANG: C++ 4 TASK: stamps 5 */ 6 #include ...

  2. NOIP 好题推荐(DP+搜索+图论)POJ ZOJ

    NOIP好题推荐(DP+搜索+图论)POJ ZOJ 1370 Gossiping (数论->模线性方程有无解的判断)+(图论->DFS)  1090 Chain ->格雷码和二进制码 ...

  3. POJ前面的题目算法思路【转】

    1000 A+B Problem 送分题 49% 2005-5-7 1001 Exponentiation 高精度 85% 2005-5-7 1002 487-3279 n/a 90% 2005-5- ...

  4. POJ 超详细分类

    POJ 各题算法 1000    A+B Problem            送分题     49%    2005-5-7 1001    Exponentiation         高精度   ...

  5. DP Review 1

    DP Review 1 这个dp啊,我就是直接用题目来说了 USACO3.1.2 总分 洛谷上面的链接 这一道题是一道比较容易看出来的题目,就是设f[n]代表时间为n的时候的最大的分数,然后就枚举第几 ...

  6. 【转】别人整理的DP大全

    为什么80%的码农都做不了架构师?>>>    动态规划 动态规划 容易: 1018 , 1050 , 1083 , 1088 , 1125 , 1143 , 1157 , 1163 ...

  7. 『ACM-算法-动态规划』初识DP动态规划算法

    一.多阶段决策过程的最优化问题 在现实生活中,有类活 动的过程,由于 它的特殊性,可将过程分成若干个互相阶段.在它的每一阶段都需要作出决策,从而使整个过程达到最好的活动效果.当阶段决策的选取不是任意确 ...

  8. (转)dp动态规划分类详解

    dp动态规划分类详解 转自:http://blog.csdn.NET/cc_again/article/details/25866971 动态规划一直是ACM竞赛中的重点,同时又是难点,因为该算法时间 ...

  9. 【HDU - 4784】Dinner Coming Soon(记忆化搜索bfs,dp)

    题干: Coach Pang loves his boyfriend Uncle Yang very much. Today is Uncle Yang's birthday, Coach Pang ...

最新文章

  1. php mysql 学习,php+mysql完全学习手册源码
  2. [置顶] 归并排序,逆序数
  3. 【运筹学】线性规划 人工变量法 ( 单纯形法总结 | 人工变量法引入 | 人工变量法原理分析 | 人工变量法案例 )
  4. 实验技术杂志文献20180126
  5. CRC生成多项式应该怎样定
  6. 电梯tt服务器显示第二行啥意思,【大杂烩】〖其他〗奥的斯电梯服务调试器按键说明(TT)...
  7. 机器学习的练功方式(六)——朴素贝叶斯
  8. [转帖]什么是α射线、β射线、γ射线
  9. Excel-在整个工作簿中查找/替换
  10. 怎么检测mysql主从正常_使用pt-table-checksum检查主从复制是否正常
  11. iPhone 6S三大性能实测
  12. ArcGIS Server Java 9.3 REST API的中文查询问题的解决方案
  13. 【安全】LDAP是轻量目录访问协议,英文全称是Lightweight Directory Access Protocol
  14. 组播协议——IGMP v2报文头介绍
  15. [转]PlantUML画类图、流程图、时序图使用详解
  16. 单链表(线性表的链式存储)---C语言版
  17. 物联网在发展上,特别是消费性产品,为何进展如此缓慢?
  18. 阶段1 语言基础+高级_1-3-Java语言高级_07-网络编程_第1节 网络通信概述_5_端口号...
  19. 如何设置tomcat定时自动重启
  20. 计算机技术能力校本培训总结,信息技术校本培训总结

热门文章

  1. 使用命令行编译打包运行自己的MapReduce程序 Hadoop2.4.1
  2. java 测量程序运行时间
  3. 经典Golang语法50问!
  4. 编码格式经典书籍--代码整洁之道
  5. linux命令strip
  6. 一个标准的PID算法
  7. 《linux内核完全剖析:基于0.12内核》读书笔记一
  8. 《spring揭秘》读书笔记一
  9. Windows中SQLite的编译及编程
  10. 仟叶学校:武汉老师最燃演讲“人生很贵,请别浪费”