码迷,mamicode.com
首页 > 其他好文 > 详细

HDU 1864 最大报销额

时间:2014-07-26 02:38:26      阅读:253      评论:0      收藏:0      [点我收藏+]

标签:动态规划   hdu   

注意数组的大小,以及字符的输入问题

#include<stdio.h>
#include<string.h>
int dp[4000000],a[4],money[400];
char s[120];
double str[120];
int max(int a,int b)
{return a>b?a:b;}
int main()
{
    int N,sum,ans,ok,count,i,j,num;
    double Q;
    
   while(~scanf("%lf%d",&Q,&N),N)
   {  
       count=0;
       sum=(int)(Q*100);
       while(N--)
      {
           scanf("%d",&num);
           a[0]=a[1]=a[2]=0;
           ok=0;
           while(num--)
           {
             getchar();
             scanf("%c%c%lf",&s[0],&s[1],&str[0]);
             if(s[0]=='A'||s[0]=='B'||s[0]=='C')
             {
                ans=(int)(str[0]*100);
                if(s[0]=='A') a[0]+=ans;
                else if(s[0]=='B') a[1]+=ans;
                else  a[2]+=ans;
             }
              else
                 ok=1;
             }
             if(!ok&&a[0]+a[1]+a[2]<=100000&&a[0]<=60000&&a[1]<=60000&&a[2]<=60000)
               money[count++]=a[0]+a[1]+a[2];
           
           
      }
      memset(dp,0,sizeof(dp));
      for(i=0;i<count;i++)
        for(j=sum;j>=money[i];j--)
           dp[j]=max(dp[j],dp[j-money[i]]+money[i]);
      printf("%.2lf\n",(double)(dp[sum]/100.0));
  }
   return 0;
} 


HDU 1864 最大报销额,布布扣,bubuko.com

HDU 1864 最大报销额

标签:动态规划   hdu   

原文地址:http://blog.csdn.net/lihaogegehuting/article/details/38119195

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!