博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[usaco3.3.2]shopping
阅读量:5058 次
发布时间:2019-06-12

本文共 2407 字,大约阅读时间需要 8 分钟。

  题目传送门:

  这道题我用dp做,把每一种优惠方案当作都有5件物品,没有的物品记为0,但写的很乱,所以直接看dp那里就好了

  

 

1 /* 2 ID:abc31261 3 LANG:C++ 4 TASK:shopping 5 */ 6  7 #include
8 #include
9 #include
10 using namespace std;11 const int maxn=111,maxm=10;12 int a[maxm],n[maxm],c[maxn][maxm],f[maxm][maxm][maxm][maxm][maxm],k[maxn][maxm],p1[maxn],yuan[maxn]; // yuan数组表示原价 13 int main()14 {15 int i,j,l,p,q,i1,i2,s,m;16 freopen("shopping.in","r",stdin);17 freopen("shopping.out","w",stdout);18 scanf("%d",&s);19 memset(f,0x7f,sizeof(f));20 memset(k,0,sizeof(k));21 memset(a,0,sizeof(a));22 f[0][0][0][0][0]=0;23 for (i=1;i<=s;i++)24 {25 scanf("%d",&n[i]);26 for (j=1;j<=n[i];j++)scanf("%d%d",&c[i][j],&k[i][j]);27 scanf("%d",&p1[i]);28 }29 scanf("%d",&m);30 for (i=1;i<=m;i++)31 {32 scanf("%d%d%d",&j,&a[i],&yuan[i]);33 for (l=1;l<=s;l++)34 for (p=1;p<=n[l];p++)35 if (c[l][p]==j)36 {37 swap(c[l][p],c[l][i]);38 swap(k[l][p],k[l][i]);39 }40 }41 for (i=0;i<=a[1];i++)42 for (j=0;j<=a[2];j++)43 for (p=0;p<=a[3];p++)44 for (q=0;q<=a[4];q++)45 for (l=0;l<=a[5];l++)46 {47 if (i>0)f[i][j][p][q][l]=min(f[i][j][p][q][l],f[i-1][j][p][q][l]+yuan[1]); // dp方程 48 if (j>0)f[i][j][p][q][l]=min(f[i][j][p][q][l],f[i][j-1][p][q][l]+yuan[2]);49 if (p>0)f[i][j][p][q][l]=min(f[i][j][p][q][l],f[i][j][p-1][q][l]+yuan[3]);50 if (q>0)f[i][j][p][q][l]=min(f[i][j][p][q][l],f[i][j][p][q-1][l]+yuan[4]);51 if (l>0)f[i][j][p][q][l]=min(f[i][j][p][q][l],f[i][j][p][q][l-1]+yuan[5]);52 for (i1=1;i1<=s;i1++) //枚举所有优惠方案 53 if (i>=k[i1][1] && j>=k[i1][2] && p>=k[i1][3] && q>=k[i1][4] && l>=k[i1][5])54 f[i][j][p][q][l]=min(f[i][j][p][q][l],55 f[i-k[i1][1]][j-k[i1][2]][p-k[i1][3]][q-k[i1][4]][l-k[i1][5]]+p1[i1]);56 }57 cout<
<

 

转载于:https://www.cnblogs.com/Sun-Sea/p/5163409.html

你可能感兴趣的文章
[GO]ticker的使用
查看>>
Linux限制端口
查看>>
C++变量初始化
查看>>
node学习心得
查看>>
顺序表存储空间连续问题
查看>>
牛客练习赛46 E 华华和奕奕学物理 (树状数组)
查看>>
JSP实现在项目在网页上查询
查看>>
zencart 网站空白的解决方案
查看>>
【9927】庆功会
查看>>
poi读excel小例子
查看>>
在一台呆滞设置两个listener(Oracle)
查看>>
KDE-SDK(KDE斥地工具)引见
查看>>
Informix IDS 11系统办理(918检验)认证指南,第 7 局部: IDS复制(22)
查看>>
Informix IDS 11系统操持(918考试)认证指南,第 7 部门: IDS复制(17)
查看>>
[优化算法] 拉丁超立方采样与基于优化的均匀采样
查看>>
.NET EasyUI datebox添加清空功能
查看>>
session如何保存在专门的StateServer服务器中
查看>>
maven中snapshot快照库和release发布库的区别和作用
查看>>
C#作业补充(6)
查看>>
luogu1919 A*BProblem升级版 (FFT)
查看>>