zoukankan      html  css  js  c++  java
  • hdu 1864 最大报销额

    题目

    ①:先判断n张发票中,有哪些是可以是报销的,可以报销的条件是( 同类不能超过600,每张发票不能超过1000,除了A,B,C之外类型的发票不能报销 ),并且计算出每张发票可以报销的总额。
    ②:初始化dp[0] = 0,表示都没有报销,外层循环遍历后续的发票,内层循环遍历当前发票之前的发票,判定如果报销发票满足输入能报销的最大额,就加上。
    ③:最后遍历一边dp数组,找出最大值就是解。
    #include<stdio.h>
    #include<cstring>
    #include<iostream>
    #include<algorithm>
    using namespace std;
    const int maxn = 35;
    int main()
    {
        int i,j,num;
        char str,b;
        double w,A,B,C,data;
        double dp[maxn],m[maxn];
        int n;
        while(cin>>w>>n && n)
        {
            memset(dp,0,sizeof(dp));
            int cnt = 1;
            for(i=0; i<n; i++)
            {
                A = 0,B = 0,C = 0;
                cin >> num;
                int flag = 0;
                for(j=0; j<num; j++)
                {
                    cin>>str>>b>>data;
                    if(str == 'A')
                        A+=data;
                    else if(str == 'B')
                        B+=data;
                    else if(str == 'C')
                        C+=data;
                    else
                        flag =1;
                }
                if(!flag && A<=600 && B<=600 && C<=600 && A+B+C <=1000 )
                 {
                      m[cnt++] = A+B+C;
                 }
            }
    
            for(i=1; i<cnt; i++)
            {
                for(j=i-1; j>=0; j--)
                 {
                     if(dp[j] + m[i] <= w)
                        dp[i] = max(dp[i], dp[j]+m[i]);
                 }
            }
            double Max = 0;
            for(i=1; i<cnt; i++)
            {
                if(dp[i] > Max)
                    Max = dp[i];
            }
            printf("%.2lf
    ",Max);
        }
    
        return 0;
    }
    

    刚开始拿到这道题,觉得信息有点多,理了半天都理不清楚。要把一团乱麻理顺还真不容易。。。。
  • 相关阅读:
    数位dp
    可持久化Trie
    网络流
    欧拉定理
    点、边双,圆方树
    [USACO5.3]窗体面积Window Area
    6.2三道模拟
    BZOJ2054 疯狂的馒头
    [USACO5.1]夜空繁星Starry Night
    [USACO5.1]乐曲主题Musical Themes
  • 原文地址:https://www.cnblogs.com/qie-wei/p/10160247.html
Copyright © 2011-2022 走看看