FZU2086-餐厅点餐
来源:互联网 发布:低级格式化数据恢复 编辑:程序博客网 时间:2024/04/28 13:12
Problem 2086 餐厅点餐
Accept: 349 Submit: 1106
Time Limit: 1000 mSec Memory Limit : 32768 KB
Problem Description
Jack最近喜欢到学校餐厅吃饭,好吃干净还便宜。
在学校餐厅,有a种汤,b种饭,c种面条,d种荤菜,e种素菜。
为了保证膳食搭配,Jack每顿饭都会点1~2样荤菜,1~2样素菜(不重复)。同时,在Jack心情好的时候,会点一样饭,再配上一种汤。在心情不好的时候,就只吃一种面条。
因为经济有限,Jack每次点餐的总价在min~max之间。Jack想知道,总共有多少种不同的点餐方案。
Input
输入数据第一行包含一个整数T,表示测试数据的组数,对于每组测试数据:
第一行为整数a,b,c,d,e(0<a,b,c,d,e<=10)
第二行为a个大于零的整数,表示a种汤的价格
第三行为b个大于零的整数,表示b种饭的价格
第四行为c个大于零的整数,表示c种面条的价格
第五行为d个大于零的整数,表示d种荤菜的价格
第六行为e个大于零的整数,表示e种素菜的价格
第七行为两个整数min max,表示每次点餐的价格范围
Output
对于每组测试数据,输出一行,包含一个整数,表示点餐方案数。
Sample Input
12 2 2 2 22 33 15 21 43 65 8
Sample Output
3
Source
福州大学第九届程序设计竞赛解题思路:暴力枚举
#include <iostream>#include <cstdio>#include <cstring>#include <string>#include <cmath>#include <algorithm>#include <stack>#include <queue>#include <climits>#include <functional>#include <vector>#include <map>#include <set>using namespace std;#define LL long longconst int INF=0x3f3f3f3f;int main(){ int soup[10],rice[10],noodle[10],meat[10],veg[10]; int mi,ma; int a,b,c,d,e; int t; scanf("%d",&t); while (t--) { int ans=0; scanf("%d%d%d%d%d",&a,&b,&c,&d,&e); for(int i=0; i<a; i++) scanf("%d",&soup[i]); for(int i=0; i<b; i++) scanf("%d",&rice[i]); for(int i=0; i<c; i++) scanf("%d",&noodle[i]); for(int i=0; i<d; i++) scanf("%d",&meat[i]); for(int i=0; i<e; i++) scanf("%d",&veg[i]); scanf("%d%d",&mi,&ma); sort(soup,soup+a); sort(rice,rice+b); sort(noodle,noodle+c); sort(meat, meat+d); sort(veg,veg+e); int sum; for(int i=0; i<a; i++) for(int j=0; j<b; j++) for(int r=0; r<d; r++) for(int y=r+1; y<d; y++) for(int w=0; w<e; w++) for(int h=w+1; h<e; h++) { sum=soup[i]+rice[j]+meat[r]+meat[y]+veg[w]+veg[h]; if(sum>=mi&&sum<=ma) ans++; }//一汤一饭两荤两素 for(int i=0; i<a; i++) for(int j=0; j<b; j++) for(int r=0; r<d; r++) for(int w=0; w<e; w++) for(int h=w+1; h<e; h++) { sum=soup[i]+rice[j]+meat[r]+veg[w]+veg[h]; if(sum>=mi&&sum<=ma) ans++; }//一汤一饭一荤两素 for(int i=0; i<a; i++) for(int j=0; j<b; j++) for(int r=0; r<d; r++) for(int y=r+1; y<d; y++) for(int w=0; w<e; w++) { sum=soup[i]+rice[j]+meat[r]+meat[y]+veg[w]; if(sum>=mi&&sum<=ma) ans++; }//一汤一饭两荤一素 for(int i=0; i<a; i++) for(int j=0; j<b; j++) for(int r=0; r<d; r++) for(int w=0; w<e; w++) { sum=soup[i]+rice[j]+meat[r]+veg[w]; if(sum>=mi&&sum<=ma) ans++; }//一汤一饭一荤一素 for(int i=0; i<c; i++) for(int r=0; r<d; r++) for(int y=r+1; y<d; y++) for(int w=0; w<e; w++) for(int h=w+1; h<e; h++) { sum=noodle[i]+meat[r]+meat[y]+veg[w]+veg[h]; if(sum>=mi&&sum<=ma) ans++; }//一面两荤两素 for(int i=0; i<c; i++) for(int r=0; r<d; r++) for(int w=0; w<e; w++) for(int h=w+1; h<e; h++) { sum=noodle[i]+meat[r]+veg[w]+veg[h]; if(sum>=mi&&sum<=ma) ans++; }//一面一荤两素 for(int i=0; i<c; i++) for(int r=0; r<d; r++) for(int y=r+1; y<d; y++) for(int w=0; w<e; w++) { sum=noodle[i]+meat[r]+meat[y]+veg[w]; if(sum>=mi&&sum<=ma) ans++; }//一面两荤一素 for(int i=0; i<c; i++) for(int r=0; r<d; r++) for(int w=0; w<e; w++) { int sum=noodle[i]+meat[r]+veg[w]; if(sum>=mi&&sum<=ma) ans++; }//一面一荤一素 printf("%d\n",ans); } return 0;}
0 0
- FZU2086 餐厅点餐
- FZU2086-餐厅点餐
- 餐厅点餐
- FZU 2086 餐厅点餐
- fzu 2086 餐厅点餐(枚举)
- FZU 2086 餐厅点餐(枚举)
- 餐厅点餐系统 --OC设计
- fzu 2086 餐厅点餐 (暴力搜索)
- Problem 2086 餐厅点餐 枚举
- [ACM] FZU 2086 餐厅点餐 (枚举)
- java swing餐厅点餐系统的设计与实现及源码之Java图形界面餐厅点餐系统的实现
- 餐厅订餐
- 餐厅
- Java swing实现的餐厅点餐系统演示及源码
- [实例]餐厅订餐单单
- 移动网页的餐厅订餐~~
- 10-20 餐厅订餐SQL语句
- 转:降级也不易--一个互联网人对开餐厅的十点体会
- Git8-Git各种错误解决办法
- 武大校赛E题
- 家谱
- 【BZOJ】1051 [HAOI2006]受欢迎的牛 强联通分量
- Linux学习笔记及心得(持续更新)
- FZU2086-餐厅点餐
- Git9-diff
- 线段树模板整理
- 通过path读取手机内置存储与外置存储中的文件
- 【2017.04.10】美团一面面经
- 关于html+js+servlet中用jsonp回调进不了回调函数的问题
- 网站的文件夹都设置哪些权限
- POJ1700 Crossing River
- 天姥