roblem 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 <string.h>
#include <algorithm>
#include <stdio.h>
#include <iomanip>
#include <cmath>
#include <stack>
#include <queue>
#include <map>
#include <vector>
#include <ctype.h>
using namespace std;
int tang,fan,mian,hun,su;
int Tang[11],Fan[11],Mian[11],Hun[11],Su[11];
int Min,Max; bool ok(int n)
{
if(n>=Min&&n<=Max)
return true;
return false;
}
int p[100000]; int main()
{
int t;cin>>t;
while(t--)
{
cin>>tang>>fan>>mian>>hun>>su;
for(int i=1;i<=tang;i++)
scanf("%d",&Tang[i]);
for(int i=1;i<=fan;i++)
scanf("%d",&Fan[i]);
for(int i=1;i<=mian;i++)
scanf("%d",&Mian[i]);
for(int i=1;i<=hun;i++)
scanf("%d",&Hun[i]);
for(int i=1;i<=su;i++)
scanf("%d",&Su[i]);
cin>>Min>>Max;
int cnt=0;
int len=0; for(int i=1;i<=hun;i++)//一荤一素
{
if(Hun[i]>=Max)
continue;
for(int j=1;j<=su;j++)
{
if(Su[j]>=Max)
continue;
int temp=Hun[i]+Su[j];
if(temp<Max)
p[++len]=temp;
}
}
for(int i=1;i<=hun;i++)//一荤两素
{
if(Hun[i]>=Max)
continue;
for(int j=1;j<=su;j++)
{
if(Su[j]>=Max)
continue;
for(int k=j+1;k<=su;k++)
{
if(Su[k]>=Max)
continue;
int temp=Hun[i]+Su[j]+Su[k];
if(temp<Max)
p[++len]=temp;
}
}
}
for(int i=1;i<=hun;i++)//两荤一素
{
if(Hun[i]>=Max)
continue;
for(int j=i+1;j<=hun;j++)
{
if(Hun[j]>=Max)
continue;
for(int k=1;k<=su;k++)
{
if(Su[k]>=Max)
continue;
int temp=Hun[i]+Hun[j]+Su[k];
if(temp<Max)
p[++len]=temp;
}
}
} for(int i=1;i<=hun;i++)//两荤两素
{
if(Hun[i]>=Max)
continue;
for(int j=i+1;j<=hun;j++)
{
if(Hun[j]>=Max)
continue;
for(int s=1;s<=su;s++)
{
if(Su[s]>=Max)
continue;
for(int q=s+1;q<=su;q++)
{
if(Su[q]>=Max)
continue;
int temp=Hun[i]+Hun[j]+Su[s]+Su[q];
if(temp<Max)
p[++len]=temp;
}
}
}
}
for(int i=1;i<=len;i++)
{
for(int fan1=1;fan1<=fan;fan1++)
{
int p1=p[i];
p1+=Fan[fan1];
int d=p1;
for(int tang1=1;tang1<=tang;tang1++)
{
p1=d;//注意这一句
p1+=Tang[tang1];
if(ok(p1))
cnt++;
}
}
for(int mian1=1;mian1<=mian;mian1++)
{
int p2=p[i];
p2+=Mian[mian1];
if(ok(p2))
cnt++;
}
}
cout<<cnt<<endl;
}
return 0;
}

[ACM] FZU 2086 餐厅点餐 (枚举)的更多相关文章

  1. FZU 2086 餐厅点餐(模拟)

    Problem 2086 餐厅点餐 Problem Description Jack最近喜欢到学校餐厅吃饭,好吃干净还便宜. 在学校餐厅,有a种汤,b种饭,c种面条,d种荤菜,e种素菜. 为了保证膳食 ...

  2. FZU 2086 餐厅点餐(枚举)

    ///个人感觉vector好看一点 #include<iostream> #include<cstdio> #include<cstring> #include&l ...

  3. FZU 2086 餐厅点餐

     好久不写博客了……得有快一个月了……看到大神们一篇篇博文 唉……差好多……这一个月 有蓝桥杯还有校赛……校赛签到题都没签完 实力铁牌……不过蓝桥杯一等奖 五月份帝都之行还挺令人期待……清明小长假之前 ...

  4. 餐厅点餐APP总结

    总结:经过这几个月的时间里,我们通过学习.讨论一起做出了餐厅点餐这个APP,我们在做这个APP的过程中,每个人都有自己的想法,也通过讨论最后做出了这个app,虽然做的不是很好,但是我们也尽自己的努力尽 ...

  5. 安卓餐厅点餐系统---针对浩然android工作室的一个小白的分析

    昨天刚把浩然android工作室的下载下来了,为了研究下点餐系统的架构,更好的完成手中的项目,便写出一个分析报告(小白的分析,忘见谅!) 本项目app主要用于餐厅无线订餐使用,功能突出餐厅的订餐需求, ...

  6. iOS- UIPickerView餐厅点餐系统

    在餐厅里的点餐系统的核心控件就是UIPickerView 今天晚上在整理以前的项目笔记时,特意把UIPickerView单独拿出来,做了一个简陋的点餐道具. 因为没有素材图片,所有大家将就看看吧 0. ...

  7. ACM/ICPC 之 三维计算几何+暴力枚举+判重(HDU5839)

    CCPC网赛第八题,求立体几何数量,题解见注释 //立体几何-求满足要求的四面体个数 //要求1:至少4条边相等 //要求2:四条边相等时,另两条边一定不相邻(即对边) //题解:以当前边为不相邻的其 ...

  8. ACM: FZU 2105 Digits Count - 位运算的线段树【黑科技福利】

     FZU 2105  Digits Count Time Limit:10000MS     Memory Limit:262144KB     64bit IO Format:%I64d & ...

  9. ACM: FZU 2107 Hua Rong Dao - DFS - 暴力

    FZU 2107 Hua Rong Dao Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I6 ...

随机推荐

  1. POJ 3463 Sightseeing

    最短路+次短路(Dijkstra+priority_queue) 题意是要求你找出最短路的条数+与最短路仅仅差1的次短路的条数. 開始仅仅会算最短路的条数,和次短路的长度.真是给次短路条数跪了.ORZ ...

  2. SIP(Session Initiation Protocol,会话初始协议)

    SIP(Session Initiation Protocol,会话初始协议)的开发目的是用来帮助提供跨越因特网的高级电话业务.因特网电话(IP电话)正在向一种正式的商业电话模式演进,SIP就是用来确 ...

  3. 点滴记录——在Ubuntu 14.04中使SublimeText 3支持中文输入法

    在Ubuntu 14.04中安装了SublimeText 3之后发现既然不支持输入中文,于是在网上搜罗一下,发现非常多人遇到了相同的问题,可是解决的方法大该就仅仅有一个.以下依据自身的安装及解决的方法 ...

  4. webqq协议分析之~~~~验证是否需要验证码

    对于小黄鸡我想大家(喜欢在群里bb的人...)肯定一点都不陌生,那段时间大家在群里对小鸡是各种调戏啊,都有点不忍直视.那时我便想能不能自己也做个呢,后来想想还是算了吧,自己技术太渣渣,然后就不了了之. ...

  5. CentOS-6.5下安装navicat for mysql

    一.安装前准备 安装epel源        安装wine        如果不安装wine,则可能会出现安装完navicat for mysql后无法启动的情况. 二.安装epel源 cd /tmp ...

  6. C函数返回字符串

    #include "stdio.h" #define KEY 5; int main() { char password[50] = "123456"; enc ...

  7. Coreseek:第一步配置文件

    Windows操作系统下:mysql数据源配置:(相应coreseek-3.2.13-win32/etc/csft_mysql.conf) #源定义 source mysql { type = mys ...

  8. python爬虫请求库之selenium模块

    一 介绍     selenium最初是一个自动化测试工具,而爬虫中使用它主要是为了解决requests无法直接执行JavaScript代码的问题 selenium本质是通过驱动浏览器,完全模拟浏览器 ...

  9. 利用css3背景位置完成拼图

    .duo { width: 623px; height: 417px; margin: 100px auto; background: url(images/bg1.png) left top no- ...

  10. [C++]在什么时候需要“#include string.h“

    相关资料:https://zhidao.baidu.com/question/515578726.html C++中,string头文件基本上已经包含在iostream中了.但是,平时使用的时候建议加 ...