01背包水题篇之HDU1864——最大报销额
来源:互联网 发布:idea java code style 编辑:程序博客网 时间:2024/05/29 02:06
这个题目好果的01,只要把每个数乘以100,就能解决下标的问题了
继续贴代码环节(自己的代码好丑啊~~~)
<span style="font-size:18px;">#include<iostream>#include<algorithm>#include<cstring>#include<cstdio>#define maxn 3100000using namespace std;int dp[maxn];int p[31];int main(){ double Q; int n,V; while(~scanf("%lf%d",&Q,&n)&&n){ int k=0; V=Q*100; while(n--){ int m,flag=1; double ts=0,a; char s[10]; cin>>m; double va,vb,vc; va=vb=vc=0; while(m--){ cin>>s; if(s[0]!='A'&&s[0]!='B'&&s[0]!='C'){ flag=0; } else{ sscanf(s,"%*[A-Z]:%lf",&a);//我用了下sscanf函数,可以这样输入scanf("%c:%lf",&ch,&a); if(s[0]=='A'){ va+=a; if(va>600) flag=0; } if(s[0]=='B'){ vb+=a; if(vb>600) flag=0; } if(s[0]=='C'){ vc+=a; if(vc>600) flag=0; } } } if(va+vb+vc>1000) flag=0; if(flag) p[k++]=(va+vb+vc)*100; } memset(dp,0,sizeof dp); for(int i=0;i<k;i++){ for(int j=V;j>=p[i];j--){ dp[j]=max(dp[j],dp[j-p[i]]+p[i]);//照搬01的方程 } } printf("%.2lf\n",1.0*dp[V]/100);//输出转化为double型 } return 0;}</span>
0 0
- 01背包水题篇之HDU1864——最大报销额
- HDU1864最大报销额 ——01背包
- 最大报销额 hdu1864 01背包
- HDU1864:最大报销额(01背包)
- hdu1864最大报销额 (01背包)
- hdu1864 最大报销额(01背包)
- HDU1864 最大报销额 01背包
- hdu1864 最大报销额(01背包)
- hdu1864 最大报销额 (01背包)
- hdu1864 最大报销额(01背包)
- 【01背包】HDU1864最大报销额
- hdu1864 最大报销额 --01背包
- HDU1864:最大报销额(01背包)
- HDU1864 最大报销额(01背包)
- hdu1864 — 最大报销额
- ACM-DP之最大报销额——HDU1864
- 【DP(背包)】 hdu1864 最大报销额
- HDU1864 最大报销额 (0-1背包)
- Activity生命周期
- android 始终显示overflow菜单
- cocos2dx 3.2 学习篇之三(场景的创建与切换)
- 体制虚化与权力拜物教 (转载)
- 今日眉批-不了了之?
- 01背包水题篇之HDU1864——最大报销额
- Intellij IDEA-maven工程编译报错的解决办法
- MyBatis中Association联合select使用
- 中巴两国元首共同出席百度巴西葡语搜索引擎启动仪式
- 模块化编译ext2, ext3,ext4 文件系统
- git add git commit讲解
- Sql Server 2008 游標的使用
- ASP.NET MVC中ActionResult的返回值
- ORACLE RAC+ASM修改控制文件位置