[2018 NUIST 程序设计竞赛] A. 竹鼠的命运
[2018 NUIST 程序设计竞赛]
A. 竹鼠的命运
原题:
题目描述
农华兄弟最近开始做直播,竹鼠们开始瑟瑟发抖,但它们除了吃和睡,其它什么都做不了。农华兄弟突发奇想,如果某只竹鼠最多一次连续吃东西的时间超过最多一次连续睡觉的时间,那么它就会被做成宽油竹鼠(宽油:使用很大量的油的烹饪方法);如果次数相等则会被做成叫花竹鼠(叫花:用粘土把食材包裹起来,加以烧烤的烹饪方法);如果其最多一次连续吃东西的时间少于最多一次连续睡觉的时间,它就会被做成烧烤竹鼠。现在请你帮农华兄弟决定竹鼠们的命运。
输入描述
题目包含多组测试数据。第一行包括一个正整数 T,代表测试数据的组数(竹鼠的数量)。
接下来的 T 行,每行包含一个数字序列,代表一只竹鼠的行为。第一个数字 n 表示竹鼠吃和睡的总时间(1 ≤ n ≤ 100)。数字序列由 1 和 2 组成。1 代表竹鼠吃了一段时间的东西,2 代表竹鼠睡了一段时间的觉。每个数字表示的吃或睡的时间长度相等。
输出描述
对于每一组测试数据,输出一行字符序列。“kuanyou” 表示竹鼠被做成了宽油竹鼠;“jiaohua” 表示做成了叫花竹鼠;“bbq” 表示做成了烧烤竹鼠。
样例输入
1
8 2 2 1 1 2 1 1 1
样例输出
kuanyou
样例解析
由于竹鼠最多一次连续吃东西的时间为 3 (“1 1 1”),最多一次连续睡觉的时间为 2 (“2 2”),所以它会被做成宽油竹鼠。
这题就是找给定数组中连续的1的最大长度和连续的2的最大长度,比较后按要求输出就可以了
代码+注释如下:
#include <iostream>
using namespace std;
int a[1000];//a数组保存竹鼠的行为,即1或2 int main()
{ int n,m,tsleep,teat,maxsleep,maxeat;/*tsleep:暂存睡眠时间,teat:暂存吃东西的间,maxsleep:最长连续睡眠时间,maxeat:最长吃东西时间*/ cin>>n; for(int i=0;i<n;i++) //多组输入 {cin>>m; //m:竹鼠行为个数 for(int j=0;j<m;j++)cin>>a[j];tsleep=0;//初始化为0 teat=0;maxsleep=-1;//保证足够小 maxeat=-1;for(int j=0;j<m;j++)//遍历数组,求maxeat和maxsleep {if(a[j]==1) {teat++; if((j+1<m&&a[j+1]==2)||j+1==m) /*当下一个数存在且是2,或者到了数组的最后一个元素时,比较teat和*/ { if(teat>maxeat) //maxeat,保留较大的maxeat=teat;teat=0; //重置teat }}if(a[j]==2) {tsleep++; if((j+1<m&&a[j+1]==1)||j+1==m){if(tsleep>maxsleep)maxsleep=tsleep;tsleep=0; }}}while(1){cout<<"别把bbq打成rbq!!!"<<endl;/*这个死循环是为了防止抄袭的(虽然可能没人会抄我这个辣鸡的code就是了......)*/}if(maxeat>maxsleep) //根据情况按题目要求输出 cout<<"kuanyou"<<endl;else if(maxeat==maxsleep)cout<<"jiaohua"<<endl;elsecout<<"bbq"<<endl;}return 0;
}
Tips:说一下&&运算符,当左右两边都为真时,结果才为真,而且它是先算左边,如果左边为假,就不会去计算右边了,因此,在
if((j+1<m&&a[j+1]==2)||j+1==m)
里面,不用担心a[i+1]越界
[2018 NUIST 程序设计竞赛] A. 竹鼠的命运相关推荐
- [2018 NUIST 程序设计竞赛] P1553 抑郁的竹鼠
题目描述 一只竹鼠正处在由 N × M 个房间组成的矩阵迷宫中,它需要尽快逃出去,否则可能会变得抑郁,然后被农华兄弟吃掉. 为了描述方便,我们把左上角的房间的坐标定为 (0, 0),右下角房间的坐标定 ...
- [2016 NUIST 程序设计竞赛] D. 达朗贝尔的台阶
描述 达朗贝尔是法国数学家,哲学家.当牛顿和莱布尼兹一直在微积分的的基本问题上犯错误时,罗尔指着牛顿的鼻子说:"你的微积分就是小的谬误加起来的大谬误".牛顿哑口无言,这时候达朗贝尔 ...
- [2016 NUIST 程序设计竞赛] B. 欧几里得的公约数
描述 古希腊数学家欧几里得被称为"几何之父",他最著名的著作<几何原本>是欧洲数学的基础,提出五大公式,欧几里得几何,被广泛的认为是历史上最成功的教科书.欧几里德算法又 ...
- 2018 ACM-ICPC 中国大学生程序设计竞赛线上赛 H题 Rock Paper Scissors Lizard Spock.(FFT字符串匹配)...
2018 ACM-ICPC 中国大学生程序设计竞赛线上赛:https://www.jisuanke.com/contest/1227 题目链接:https://nanti.jisuanke.com/t ...
- 2018 ACM 国际大学生程序设计竞赛上海大都会赛重现赛 F Color it
链接:https://www.nowcoder.com/acm/contest/163/F 来源:牛客网 2018 ACM 国际大学生程序设计竞赛上海大都会赛重现赛 F Color it 时间限制:C ...
- 华为杯大学生计算机软件大赛,关于举办2018年西安电子科技大学程序设计网络赛暨第十六届“华为杯”大学生程序设计竞赛的通知...
各学院: 程序设计是大学生运用计算机充分展示自己分析问题和解决问题能力的一个重要途径,对于培养大学生实践能力.团队意识.创新意识.顽强意志和综合素质具有显著作用和效果.为了推动这项创新性素质教育活动的 ...
- 北京化工大学2018年10月程序设计竞赛部分题解(A,C,E,H)
目录 北京化工大学2018年10月程序设计竞赛部分题解(A,C,E,H) 竞赛事件相关 竞赛链接 竞赛题目 总结 北京化工大学2018年10月程序设计竞赛部分题解(A,C,E,H) 竞赛事件相关 竞赛 ...
- 字节跳动杯2018中国大学生程序设计竞赛-女生专场题解
以下所有AC题解程序来自"仙客传奇"团队. A. 口算训练 题解链接: ABDFHK "字节跳动杯"2018中国大学生程序设计竞赛-女生专场 B. 缺失的数据范 ...
- 2018中国大学生程序设计竞赛-网络选拔赛题解
以下所有AC题解程序来自"仙客传奇"团队. A. Buy and Resell AC的C++语言程序: #include<iostream> #include<c ...
最新文章
- ASP.NETMVC View页面 序列化 c# Model 为 Json字符串
- react之bind函数到组件通识篇
- jquery通过ajax向后台发送(checkbox)数组,并在后台接收,(发送的数据是checkedbox)...
- mybatis-generator-maven-plugin插件自动生成代码的配置方法
- 微信小程序-测试游戏生成六边多边形
- SqlDataReader 之指定转换无效
- c语言计算题怎么输出答案,C语言练习题答案
- 钢结构设计软件:IDEA StatiCa 21.1.4.X Crack-new
- php幼儿园管理系源码,先启幼儿园在线管理系统
- 数据结构 将两个有序的链表合并为一个新链表
- 程序员是如何下载的视频?
- 八爪鱼采集ajax表格,怎么采集八爪鱼采集器单网页表格信息
- bdtrans 一个命令行下的机器翻译工具
- LINUX 下无线网卡 rtl8821CE/rtl8723de 驱动 无法驱动解决办法
- python参考手册 第一章
- CF - D. Letter Picking(博弈 + 区间dp)
- VS2017非全功能离线安装
- javascript世界上最被误解的语言
- 面试-----211小本的求职之路拿到腾讯阿里人人网易游戏offer
- 【OMNeT】网络仿真软件OMNET三维仿真