Hdu 最大报销额(DP)

来源:互联网 发布:淘宝一天刷多少单合适 编辑:程序博客网 时间:2024/05/05 07:56

这题主要注意一点:

每张发票上的每类商品的价钱不能超过600;

600.00 1

2 A:200.00 A:100.00 A:400.00

此时,商品A的价钱已经超出600,所以这张发票作废。

 

#include<iostream>
#include<list>
using namespace std;
int main()
{
 double s,suma,sumb,sumc,t,re,sum;
 char ca,cb;
 int n,m,i,j,k,flat;
 list < double > a;
 while(scanf("%lf%d",&s,&n)!=EOF)
 {
  if(n==0)
   break;
  for(i=0,j=0;i<n;i++)
  {
   cin>>m;
   suma=0;
   sumb=0;
   sumc=0;
   flat=1;
   for(k=0;k<m;k++)
   {
    cin>>ca>>cb>>t;
    if(ca=='A'||ca=='B'||ca=='C')
    {
     if(ca=='A')
      suma+=t;
     if(ca=='B')
      sumb+=t;
     if(ca=='C')
      sumb+=t;
    }
    else
     flat=-1;
   }
   if(suma>600||sumb>600||sumc>600)
    flat=-1;
   if(flat==1)
   {
    sum=suma+sumb+sumc;
    if(sum>=0&&sum<=1000)
                    a.push_back (sum);
   }

  }
  a.sort();
  re=0;
  while (!a.empty())
  {
   if ((s - a.back()) >= 0.00)
   {
    s -= a.back();
    re += a.back();
    a.pop_back();
   }
   else
   {
    a.pop_back();
   }
  }
  printf("%.2lf/n",re);
  a.clear();
  
  
 }
 return 0;
}

原创粉丝点击