zoukankan      html  css  js  c++  java
  • hdu 1864 最大报销额【01背包变形~】(实数转整型)

     题目链接

    思路:01背包变形。由于题目要求精确到小数点后2位,那么我们可以将读入的实数扩大100倍,转为整型进行计算,最后结果除以100,保留两位小数,转为整型后这道题就是一个01背包的简单变形,读入物体的价值既是背包的花费又是背包的价值。

    注意:题意容易理解出错的地方:单项物品的价值不得超过600元。指的是每张发票上同一类物品的价值,而不是每张发票上每个物品的价值不得超过600.

    #include<stdio.h>
    #include<iostream>
    #include<string.h>
    #include<algorithm>
    using namespace std;
    #define N 3010000
    #define inf 0x3f3f3f3f
    int dp[N],f[31];
    
    int main()
    {
        int t,i,j,a,b,c,x,y,sum,count,n,m,flag,ans;
        char ch;
        double fi;
        while(scanf("%lf%d",&fi,&n),n!=0)
        {
            x = (int)(fi*100);//转为整型 
            memset(f,0,sizeof(f));
            memset(dp,0,sizeof(dp));
            for(i = 1; i <= n; i ++)
            {
                scanf("%d",&m);
                getchar();
                a = b = c = flag = 0;
                for(j = 1; j <= m; j ++)
                {
                    scanf("%c%*c%lf",&ch,&fi);
                    getchar();
                    y = (int)(fi*100);//价值转为整型 
                    if(ch == 'A'&&a+ y<= 60000)
                        a += y;
                    else if(ch == 'B'&&b+y<= 60000)
                        b += y;
                    else if(ch == 'C'&&c+y<= 60000)
                        c += y;
                    else flag = 1;
                }
                sum = a+b+c;
                if(sum<=100000&&!flag)//满足题目每张发票的总额不得超过1000元和允许报销的发票类型包括买图书(A类)、文具(B类)、差旅(C类) 
                    f[i] = sum;
            }
            for(i = 1; i <= n; i ++)
                for(j = x; j >= f[i]; j--)
                    dp[j] = max(dp[j],dp[j-f[i]]+f[i]);
                    
            printf("%.2lf
    ",(double)(dp[x]/100.0));
        }
        return 0;
    }
  • 相关阅读:
    画册制作须知
    名片设计尺寸及名片设计的注意事项
    鼠标指到图片上会向上移动
    css3 实现鼠标放到一个div上显示出另一个隐藏的div
    React Native的原生路由
    React中input checked的使用
    Webpack打包React踩到的坑
    Linux下git的配置
    js变量提升的一个小坑
    SpringMVC中传入的对象存放在哪里
  • 原文地址:https://www.cnblogs.com/hellocheng/p/7552548.html
Copyright © 2011-2022 走看看