HDU1864----最大报销额

发布时间:2017-6-25 16:49:58 编辑:www.fx114.net 分享查询网我要评论
本篇文章主要介绍了"HDU1864----最大报销额",主要涉及到HDU1864----最大报销额方面的内容,对于HDU1864----最大报销额感兴趣的同学可以参考一下。

只要把数据处理下,就是01背包了。。 #include <stdio.h> #include <iostream> #include <algorithm> #include <string.h> #define max(a,b) a>b?a:b using namespace std; int main() { int n,m,i,j,flag[35]; double p[35]; char ch; double sum[35],dp[35]; double max; while(scanf("%lf%d",&max,&n),n) { for(i=1;i<=n;i++) sum[i]=0; for(i=1;i<=n;i++) { scanf("%d",&m); flag[i]=0; double suma=0,sumb=0,sumc=0; for(j=1;j<=m;j++) { getchar(); scanf("%c:%lf",&ch,&p[j]); sum[i]+=p[j]; if(ch=='A') suma+=p[j]; else if(ch=='B') sumb+=p[j]; else if(ch=='C') sumc+=p[j]; else flag[i]=1; } if(sum[i]>1000 || suma>600 || sumb>600 || sumc>600) flag[i]=1; } memset(dp,0,sizeof(dp)); for(i=1;i<=n;i++) { for(j=n;j>=1;j--) { if(flag[i]==0) dp[j]=max(dp[j],dp[j-1]+sum[i]); } } double maxn=-1; for(i=1;i<=n;i++) { if(dp[i]>maxn && dp[i]<=max) maxn=dp[i]; } printf("%.2lf\n",maxn); } return 0; }

上一篇:nagios报警参数详细设置
下一篇:boost库asio详解1——strand与io_service区别

相关文章

相关评论

本站评论功能暂时取消,后续此功能例行通知。

一、不得利用本站危害国家安全、泄露国家秘密,不得侵犯国家社会集体的和公民的合法权益,不得利用本站制作、复制和传播不法有害信息!

二、互相尊重,对自己的言论和行为负责。