FZU 2086 餐厅点餐(模拟)
Problem 2086 餐厅点餐
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
Sample Output
Answer
想说:这什么鬼!!!其实这个题目就是一个嵌套(2+(2||1))循环,在买下下一样物品之前,保存现在花的钱,处理完下面的循环再恢复回来。
Code
#include <iostream>
#include <cstdio>
#include <string>
#include <set>
#include <algorithm>
#include <vector>
#include <cstring>
#define ms(a) memset(a,0,sizeof(a))
using namespace std;
int main()
{
int N;
int a,b,c,d,e,ans,n,m,cnt,save;
int va[],vb[],vc[],vd[],ve[];
//int via[11],vib[11],vic[11],vid[11],vie[11];
//freopen("in.txt","r",stdin);
cin>>N;
while(N--)
{
ans=;
cin>>a>>b>>c>>d>>e;
ms(va),ms(vb),ms(vc),ms(vd),ms(ve);
//ms(via),ms(vib),ms(vic),ms(vid),ms(vie);
for(int i=; i<=a; i++)cin>>va[i];
for(int i=; i<=b; i++)cin>>vb[i];
for(int i=; i<=c; i++)cin>>vc[i];
for(int i=; i<=d; i++)cin>>vd[i];
for(int i=; i<=e; i++)cin>>ve[i];
cin>>n>>m;
for(int i=; i<=e; i++)
{
cnt=ve[i];
//vie[i]=1;
save=cnt;
//printf("%d ",ve[i]);
for(int ii=; ii<=e; ii++)
{
if(cnt<n&&cnt>m)break;
//if(vie[ii])continue;
cnt+=ve[ii];
//printf("%d ",ve[ii]);
//vie[ii]=1;
int save2=cnt;
for(int j=; j<=d; j++)
{
if(cnt<n&&cnt>m)break;
cnt+=vd[j];
//printf("%d ",vd[j]);
//vid[j]=1;
int save3=cnt;
for(int jj=; jj<=d; jj++)
{
if(cnt<n&&cnt>m)break;
//if(vid[jj])continue;
cnt+=vd[jj];
//printf("%d ",vd[jj]);
int save4=cnt;
for(int k=; k<=b; k++)
{
if(cnt<n&&cnt>m)break;
cnt+=vb[k];
//printf("%d ",vb[k]);
int save5=cnt;
for(int kk=; kk<=a; kk++)
{
if(cnt<n&&cnt>m)break;
cnt+=va[kk];
//printf("%d ",va[kk]);
if(cnt>=n&&cnt<=m)ans++;
cnt=save5;
//printf("\n");
}
cnt=save4;
}
//cnt=save4;
for(int k=; k<=c; k++)
{
if(cnt<n&&cnt>m)break;
cnt+=vc[k];
if(cnt>=n&&cnt<=m)ans++;
cnt=save4;
}
if(jj==)jj=j;
cnt=save3;
}
cnt=save2;
//vid[j]=0;
}
cnt=save;
//vie[ii]=0;
if(ii==)ii=i;
}
//vie[i]=0;
}
printf("%d\n",ans);
}
return ;
}
FZU 2086 餐厅点餐(模拟)的更多相关文章
- [ACM] FZU 2086 餐厅点餐 (枚举)
roblem Description Jack近期喜欢到学校餐厅吃饭.好吃干净还廉价. 在学校餐厅.有a种汤,b种饭.c种面条,d种荤菜,e种素菜. 为了保证膳食搭配,Jack每顿饭都会点1~2样荤菜 ...
- FZU 2086 餐厅点餐
好久不写博客了……得有快一个月了……看到大神们一篇篇博文 唉……差好多……这一个月 有蓝桥杯还有校赛……校赛签到题都没签完 实力铁牌……不过蓝桥杯一等奖 五月份帝都之行还挺令人期待……清明小长假之前 ...
- FZU 2086 餐厅点餐(枚举)
///个人感觉vector好看一点 #include<iostream> #include<cstdio> #include<cstring> #include&l ...
- 餐厅点餐APP总结
总结:经过这几个月的时间里,我们通过学习.讨论一起做出了餐厅点餐这个APP,我们在做这个APP的过程中,每个人都有自己的想法,也通过讨论最后做出了这个app,虽然做的不是很好,但是我们也尽自己的努力尽 ...
- FZU 2032 Log函数问题 模拟小数加法
题目链接:Log函数问题 2 / 49 Problem G FZU 2032 Log函数问题 不知道为什么...比赛时高精度难倒了一票人...成功搞出大新闻... 试了一下直接double相加超时,然 ...
- 安卓餐厅点餐系统---针对浩然android工作室的一个小白的分析
昨天刚把浩然android工作室的下载下来了,为了研究下点餐系统的架构,更好的完成手中的项目,便写出一个分析报告(小白的分析,忘见谅!) 本项目app主要用于餐厅无线订餐使用,功能突出餐厅的订餐需求, ...
- iOS- UIPickerView餐厅点餐系统
在餐厅里的点餐系统的核心控件就是UIPickerView 今天晚上在整理以前的项目笔记时,特意把UIPickerView单独拿出来,做了一个简陋的点餐道具. 因为没有素材图片,所有大家将就看看吧 0. ...
- FZU 2216 The Longest Straight 模拟
题目链接:The Longest Straight 就是一个模拟就是这样,T_T然而当时恶心的敲了好久,敲完就WA了,竟然有这么简单的方法,真是感动哭了.......xintengziji...zhi ...
- FZU 1078 计算循环冗余码【模拟】
计算机网络中采用循环冗余码来校验数据的正确性.其原理是:发送方计算出待发送的二进制数据的循环冗余码,并随同原数据一起发送到接收方:接收方通过重新计算接收到的数据的循环冗余码,并和收到的循环冗余码进行比 ...
随机推荐
- WCF服务最近经常死掉
系统上线后WCF服务最近经常死掉的原因分析总结 前言 最近系统上线完修改完各种bug之后,功能上还算是比较稳定,由于最近用户数的增加,不知为何经常出现无法登录.页面出现错误等异常,后来发现是由于W ...
- Node.js基础知识
Node.js入门 Node.js Node.js是一套用来编写高性能网络服务器的JavaScript工具包,一系列的变化由此开始.比较独特的是,Node.js会假设在POSIX环境下运行 ...
- PLAN: 入门题目
一道道刷完它! A07, A11, A12, A14, A15, A18, A22, A24, A25, A26, A27 A29, A32, A34, A59, A66, A69, A84, B24 ...
- c# 窗体最小化后截图实现
我们知道,当我们需要对Control进行截图时,我们可以使用Control.DrawToBitmap()进行截图, 那么问题来了,当我们的窗体最小化了,我们还怎么截图呢? 当窗体最小化的时候,我们知道 ...
- Debian 7.1设置中文环境
之前在Chinaunix上看过一个人写过博客,是关于介绍Debian设置中文环境的,在这里我针对Debian 7来补全一下. Debian是非常经典而优秀的Linux发行版了,Debian是个很大的家 ...
- 通过DialogFragment从DatePicker或TimePicker中获取日期数据
通过DialogFragment从DatePicker或TimePicker中获取日期数据 一个activity类,里面存有date和time的变量,想通过dialogfragment的方式获取用户输 ...
- IOS7学习之路九(ios7自定义UIAlertView)
IOS7的UIAlertView 不支持自定义,无法添加subview . 不过可以用第三方库git上的下载链接 https://github.com/wimagguc/ios-custom-a ...
- MyEclipse添加ibatis DTD文件实现xml的自动提示功能
当我们写ibatis配置文件的时候,希望有xml自动提示功能.这就需要我们添加DTD文件 SqlMapConfig.xml中开头部分有这么一句话 <!DOCTYPE sqlMapConfig P ...
- 5款最好用的开源Web快速开发工具
1.Aptana Studio Aptana是一个用于HTML,CSS和JavaScript的网站开发工具.目前在社区里有成千上万的人在开发Aptana的插件. Apatana Studio官网:ht ...
- Java笔记:String类
1.String类是不可变类,一旦一个String对象被创建以后,包含在这个对象中的字符序列式不可改变的,直至这个对象被销毁. String s1 = "java"; s1 = s ...