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

HDU 1864 最大报销额

时间:2014-10-11 17:09:35      阅读:155      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   color   io   os   ar   for   数据   

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1864

 

思路:01背包问题。。。我感觉难点不在01背包上,而在输入数据的处理上。。题目指的是一类的数量不大于600....不知道这个估计得一直wa、

 

 

代码:

#include <iostream>
#include <cstring>
#include <cstdio>
using namespace std;

double dp[1000];
double danjia[1000];

int main()
{
    double q;
    int n;
    int flag;
    int all;
    while(cin>>q>>n&&n)
    {
        all = 0;
        memset(dp, 0, sizeof(dp));
        for(int k = 1; k<= n; k++)
        {
            int num;
            cin>>num;
            getchar();
            char ct;
            double t;
            double A = 0,B = 0,C = 0;
            for(int i=0; i<num; i++)
            {
                flag = 0;
                scanf("%c",&ct);
                getchar();
                if(ct == A)
                {
                    cin>>t;
                    A+=t;
                }
                else if(ct==B)
                {
                    cin>>t;
                    B+=t;
                }
                else if(ct == C)
                {
                    cin>>t;
                    C+= t;
                }
                else
                {
                    cin>>t;
                    flag = 1;
                }
                if( i != num-1)
                    getchar();
            }
            
            if(A>600 || B> 600 || C > 600 || flag == 1 || A+B+C >1000)
            {
                continue;
            }
            danjia[all++] = A+B+C;        
        }
        
        
        for(int i=0; i<=all-1; i++)
        {
            for(int j = all; j >=1; j--)
            {
                dp[j] = max(dp[j], dp[j - 1] + danjia[i]);
            }
        }
        
        for(int i = all; i>=0; i--)
        {
            if(dp[i]<=q)
            {
                printf("%.2f\n",dp[i]);
                break;
            }
        }
    }
    return 0;
}

 

HDU 1864 最大报销额

标签:style   blog   http   color   io   os   ar   for   数据   

原文地址:http://www.cnblogs.com/ltwy/p/4019093.html

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