hdu1864(简单的01背包)
来源:互联网 发布:python popen pipe 编辑:程序博客网 时间:2024/05/22 05:20
背包的容量不能是小数,但是将其*100就可以了
#include <stdio.h>#include <malloc.h>typedef struct Node{ double sum;}node;node q[35]; //发票 double qq;int n;double max(double a,double b){ if(a>b) return a; return b;}int main(){ while(scanf("%lf %d",&qq,&n)&&n){ //初始化 int i; for(i=0;i<=n;i++){ q[i].sum=0; } int x=100*qq+2; double *dp=(double *)malloc(sizeof(double)*x); for(i=0;i<=qq*100;i++) dp[i]=0; int j,k; for(i=k=1;i<=n;i++){ int m; scanf("%d",&m); int f=1; double a=0,b=0,c=0; for(j=1;j<=m;j++){ getchar();//空格 char cc; cc=getchar(); getchar();//: double num; scanf("%lf",&num); if(cc == 'A'){ a+=num; } else if(cc == 'B'){ b+=num; } else if(cc == 'C'){ c+=num; } else{ //不是abc f=0; } } if(!f||a>600||b>600||c>600||a+b+c>1000){ q[k].sum=0; } else { q[k].sum=a+b+c; k++; } } n=k-1; for(i=1;i<=n;i++){ for(j=int(100*qq);j>=(int)(100*q[i].sum);j--){ dp[j]=max(dp[j],dp[j-(int)(100*q[i].sum)]+q[i].sum); } } printf("%.2lf\n",dp[(int)(100*qq)]); }}
阅读全文
0 0
- hdu1864(简单的01背包)
- hdu1864 (01背包)
- HDU1864(01背包)
- 简单的背包问题(入门)HDU2602 HDU2546 HDU1864
- hdu1864 最大报销额(01背包)
- hdu1864 最大报销额(01背包)
- HDU1864 最大报销费用(01背包)
- HDU1864 01背包
- hdu1864-01背包
- HDU1864--01背包
- 最大报销额 hdu1864 01背包
- HDU1864:最大报销额(01背包)
- hdu1864最大报销额 (01背包)
- HDU1864 最大报销额 01背包
- hdu1864 最大报销额(01背包)
- hdu1864 最大报销额 (01背包)
- 【01背包】HDU1864最大报销额
- hdu1864 最大报销额 --01背包
- 日常总结
- caffe源码学习
- Java的super关键字
- Python开发Kettle做大数据ETL(前期准备)
- java.sql.SQLException: ORA-03115: 不支持的网络数据类型或表示法
- hdu1864(简单的01背包)
- 静态逆向简单的ELF
- linux下查看下操作系统位数和发行版本
- 指向类成员的指针
- 二叉树遍历
- 字符串流
- resteasy 与spring集成
- 前端开发总结(五)
- 6月13号——Java的语言基础