• 大小: 0M
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-05-27
  • 语言: 其他
  • 标签: 其他  

资源简介

1814.rar

资源截图

代码片段和文件信息

#include 
using namespace std;

ifstream cin(“1.in“);
ofstream cout(“1.out“);

//cost(abcde)表示购买商品组合(abcde)需要的最少费用
//A[k]B[k]C[k]D[k]E[k]表示第k种优惠方案的组合,offer[m]是第m种优惠方案的价格
//则cost(abcde)=cost(a-A[m]b-B[m]c-C[m]d-D[m]e-E[m])+offer(m);

struct g
{
int pieceprice ;
}purch[100];
int cost[7][7][7][7][7];
int b s product[6]num[100]offer[100][100];
void minicost()
{
int i  j  k  n  m  p minm ;
minm = 0 ;
for( i = 1 ; i <= b ; i ++)
minm += product[i]*purch[i].price ;
for( p = 1 ; p <= s ; p++ )
{
i = product[1]-offer[p][1];
j = product[2]-offer[p][2];
k = product[3]-offer[p][3];
m = product[4]-offer[p][4];
n = product[5]-offer[p][5];
if( i >= 0 && j >= 0 && k >= 0&& m >= 0 &&n >= 0 &&(cost[i][j][k][m][n]+offer[p][0] minm = cost[i][j][k][m][n]+offer[p][0];
}
cost[product[1]][product[2]][product[3]][product[4]][product[5]]=minm;
}
void comp(int i)
{
if(i > b ){
minicost();
return ;
}
for( int j = 0 ; j <= purch[i].piece; j ++ )
{
product[i] = j; comp(i+1);
}
}

void init()
{
int i  j  n  p  t code ;
for( i = 0 ; i < 100 ; i++ )
for( j = 0 ; j < 6 ; j ++ )
offer[i][j] = 0 ;
for( i = 0 ; i < 6 ; i ++ )
{
purch[i].piece = 0 ;purch[i].price= 0 ;product[i]= 0 ;
}
cin>>b;
for( i = 1 ; i <= b ; i ++ )
{
cin>> code ;
cin>>purch[i].piece>>purch[i].price ;
num[code] = i ;
}
cin >> s ;
for ( i = 1 ; i <= s ; i++ )
{
cin>> t;
for( j = 1 ; j <= t; j ++ )
{
cin>>n>>p;
offer[i][num[n]] = p ;
}
cin>>offer[i][0];
}
}
int main()
{
init();
   comp(1);
   cout<   return 0 ;
}

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       1781  2008-11-24 22:41  最少费用购物\1036.cpp

     文件       1263  2009-03-13 19:07  最少费用购物\最少费用购物.txt

     目录          0  2009-03-13 19:08  最少费用购物

----------- ---------  ---------- -----  ----

                 3044                    3


评论

共有 条评论