百度之星编程大赛--饭团的烦恼(解答)

原创 2006年06月18日 19:49:00

“午餐饭团”是百度内部参与人数最多的民间组织。
同一个部门的、同一所大学的、同一年出生的、使用同一种型号电脑的员工们总是以各种理由组织各种长期的、临时的饭团。

参加饭团,不仅可以以优惠的价格尝到更加丰富的菜式,还可以在吃饭的时候和同事们增进感情。
但是,随着百度的员工越来越多,各个饭团的管理变得繁杂起来。特别是为了照顾员工们越来越挑剔的胃,饭团的点菜负责人的压力也越来越大。现在,这个任务就交给“百度之星”了,因为,你将要为所有的百度饭团设计一个自动点菜的算法。

饭团点菜的需求如下:
1.经济是我们要考虑的一个因素,既要充分利用百度员工的午餐补助,又不能铺张浪费。因此,我们希望最后的人均费用越接近12元越好。
2.菜式丰富是我们要考虑的另一个因素。为简单起见,我们将各种菜肴的属性归结为荤菜,素菜,辛辣,清淡,并且每个菜只能点一次。
3.请谨记,百度饭团在各大餐馆享受8折优惠

输入要求:
1.输入数据第一行包含三个整数N,M,K(0<N<=16,0<M<=N,0<K<=12),分别表示菜单上菜的数目,饭团需要点的菜的数目,就餐的人数;
2.紧接着N行,每行的格式如下:
菜名(长度不超过20个字符) 价格(原价,整数) 是否荤菜(1表示是,0表示否) 是否辛辣(1表示是,0表示否);
3.第N+2行是 a b c d 四个整数,分别表示需要点的荤菜,素菜,辛辣,清淡菜的数目。例:
3 2 2
水煮鱼 30 1 1
口水鸡 18 1 1
清炖豆腐 12 0 0
1 1 1 1
样例:in.txt

输出要求:
对于每组测试数据,输出数据包含M+1行,前M行每行包含一个菜名(按菜名在原菜单的顺序排序)。第M+1行是人均消费,结果保留两位小数。例:
口水鸡
清炖豆腐
12.00
样例:out.txt

评分规则:
1.程序将运行在一台Linux机器上(内存使用不作严格限制),在每一测试用例上运行不能超过10秒,否则该用例不得分;
2.要求程序能按照输入样例的格式读取数据文件,按照输出样例的格式将运行结果输出到标准输出上。如果不能正确读入数据和输出数据,该题将不得分;
3.该题目共有5个测试用例,每个测试用例为一个输入文件。各测试用例占该题目分数的比例分别为20%,20%,20%,20%,20%;
4.该题目10分。

解答:本人没有acm经验只能用自己的朴素的理解来解答这个问题,希望高手多指教!
这道题是最优值的问题!就要在满足第N+2行点菜条件下,并且最后的人均的价格最接近12。00元的,就是答案!我们用枚举的方法来解。就是对所有的菜进行组合,如果其中的一个组合满足条件,并且在所有满足条件的组合中最接近12.00,这就是我们想要的答案!如果计算全部组合,算法的时间复杂度会是O(n!)  !但只要加一些限制的条件,就可以提高算法的效率!
(1)如果已经找到一个满足条件的组合A,那么只有当后面的组合的人均价格比A更接近12.00,才有可能是答案
否则没有必要对其进行判断满足条件!这眼就可以提高效率!
先写到这了,代码(cpp)下次发,要去上自习了,快期末考了,最头疼的考试科目就是 vfp !
悲哀啊!

 


 

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

2006年百度之星程序设计大赛初赛题目1:饭团的烦恼

饭团的烦恼 同一个部门的,同一间大学的,同一年出生的,用同一种型号电脑的,员工们总是以各种理由,各种借口组织各种长久的,临时的饭团。 参加饭团,不仅可以以优惠的价格尝到更加丰富的菜式,还可...

“百度之星”程序设计大赛试题解答(Java实现)

本人属于Java初学者,学习Java有一段时间了。为了提高自己编程能力,最近在网上找了一些程序设计大赛的题目来做。 每做出一道,就会把自己的答案贴到博客上来,争取每天一道: 一来丰富一下自己的第一...

"百度之星"程序设计大赛试题解答(Java实现)---变态的比赛规则(未完成!!!)

悲催啊,弄了整整一下午还是没有完整滴弄出来 不得不承认我智商很一般,搞这个整数划分的算法搞了近1个小时才弄明白,可是,这道变态的题目并不是这样简单啊!!!忍无可忍,只好站在前人的肩膀上了来做了一位是...

2017"百度之星"程序设计大赛-资格赛-1004-度度熊的午饭时光

ACM模版描述题解我真想吐槽这次比赛出题人是多么的糙,题意难以理解也就算了,还有错别字……有强迫症的我十分痛苦。反正又是一个 dpdp,有些像 0101 背包,看看代码吧,没啥太大区别。虽然也有那么一...
  • f_zyj
  • f_zyj
  • 2017-08-07 16:18
  • 269

2006年百度之星程序设计大赛初赛题目2:蝈蝈式的记分

··题目名称:蝈蝈式的记分 ··内容描述:    蝈蝈小朋友刚刚学会了0-9这十个数字,也跟爸爸妈妈来参加百度每周进行的羽毛球活动。但是他还没有球拍高,于是大人们叫他记录分数。聪明的蝈蝈发现只...

2005年百度之星程序设计大赛试题初赛题目-题2

百度之星程序设计大赛试题 -2  第二题(共四题 100 分):重叠区间大小( 20 分)  题目描述:请编写程序,找出下面 “ 输入数据及格式 ” 中所描述的输入数据文件中最大重叠区间...

2017"百度之星"程序设计大赛 - 资格赛 1004

度度熊的午饭时光  Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)