题意:中文题,你懂得。

析:拿过题目一看,本来以为是贪心,仔细一看不是贪心,其实是一个简单的01背包问题(DP),不过这个题的坑是在处理发票上,刚开始WA了一次。

分析一下什么样的发票是不符合要求的:

1.某一种物品的和超过了600元,注意一定是和,因为有的物品出数据时故意分开了,这是一个坑。

2.发票中含有除ABC这三类的发票是不符合的。

3.发票中总额超过了1000元也是不符合的。

只要处理好上面这三点,AC就小意思了。剩下的就是一个01背包,相当于让你求最大的价值。

有点小技巧,因为是浮点数,我们可以把它们都扩大100倍,最后再缩小,可以减少误差。(这个是借鉴网上的)

代码如下:

#include <cstdio>
#include <iostream>
#include <cstring> using namespace std;
int a[35];
int d[30*1000*100+10]; int main(){
double q;
int n, m, s;
while(scanf("%lf", &q)){
s = (int)(q * 100);
scanf("%d", &n); if(!n) break; char ch;
int indx = 0, x;
while(n--){
int alla = 0, allb = 0, allc = 0;
bool ok = true;
int sum1 = 0;
scanf("%d", &m);
for(int i = 0; i < m; ++i){
scanf(" %c:%lf", &ch, &q);
x = (int)(q*100);
if(ch < 'A' || ch > 'C') ok = false;
if('A' == ch) alla += x;
else if('B' == ch) allb += x;
else if('C' == ch) allc += x;
if(x > 60000) ok = false;
sum1 += x;
}
if(alla > 60000 || allb > 60000 || allc > 60000 || sum1 > 100000) ok = false;
if(ok) a[indx++] = sum1;
} memset(d, 0, sizeof(d));
for(int i = 0; i < indx; ++i)
for(int j = s; j >= a[i]; --j)
d[j] = max(d[j], d[j-a[i]]+a[i]); printf("%.2lf\n", (double)d[s]/100.0);
}
return 0;
}

最新文章

  1. MVC学习系列13--验证系列之Remote Validation
  2. Confirm the Ending
  3. 【BZOJ】3670: [Noi2014]动物园
  4. POJ3189 Steady Cow Assignment(最大流)
  5. spm3安装和使用
  6. Python学习教程(learning Python)--2.3.2 Python函数实参详解
  7. 云计算服务模型,第 3 部分: 软件即服务(PaaS)
  8. DNS服务架设 redhat linux
  9. Asp.net mvc 知多少(十)
  10. Angularjs快速入门(四)-css类和样式
  11. Spring MVC 的文件下载
  12. Git reset到某一次commit
  13. 获取网页title(还有一坑未填)
  14. cf1084d 非常巧妙的树形dp
  15. Troubleshooting Scheduler Autotask Issues (Doc ID 1561498.1)
  16. object references an unsaved transient instance save the transient instance before flushing
  17. Spring和SpringBoot比较,解惑区别
  18. The Smallest Difference
  19. C#二叉树简易实例
  20. C#抽象类与接口的区别【转】

热门文章

  1. java常用的Utils写法
  2. input 提交属性 hidden属性
  3. kafka offset 设置
  4. 下载gradle缓慢的解决方法
  5. mydumper使用
  6. express + mongodb 搭建一个简易网站 (四)
  7. DES_3DES_AES_IDES_RSA密码算法比较
  8. webdriver屏幕截图(python)
  9. string类小结
  10. Python bool() 函数