[2018 NUIST 程序设计竞赛] A. 竹鼠的命运

2024-05-03 20:18

本文主要是介绍[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. 竹鼠的命运的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/957559

相关文章

Javascript高级程序设计(第四版)--学习记录之变量、内存

原始值与引用值 原始值:简单的数据即基础数据类型,按值访问。 引用值:由多个值构成的对象即复杂数据类型,按引用访问。 动态属性 对于引用值而言,可以随时添加、修改和删除其属性和方法。 let person = new Object();person.name = 'Jason';person.age = 42;console.log(person.name,person.age);//'J

libssh-cve_2018_10933-vulfocus

1.原理 ibssh是一个用于访问SSH服务的C语言开发包,它能够执行远程命令、文件传输,同时为远程的程序提供安全的传输通道。server-side state machine是其中的一个服务器端状态机。   在libssh的服务器端状态机中发现了一个逻辑漏洞。攻击者可以MSG_USERAUTH_SUCCESS在身份验证成功之前发送消息。这样可以绕过身份验证并访问目标SSH服务器。 本来是靶机要

MapReduce程序设计2

要求 1、数据集stock-daily,包含A股近4000只股票的今年以来的日数据;数据集stock-daily-30d仅包含最近30个交易日数据,根据自己计算机性能选择。 数据来源:https://www.joinquant.com/help/api/help?name=JQData 2、数据集stock-concept,包含A股近4000只股票所有的股票代码、名称和概念。 数据来源:万

【华东南AWDP】第十七届全国大学生信息安全竞赛 CISCN 2024 创新实践能力赛区域赛 部分题解WP

前言:这次区域赛AWDP安恒作为支持,赛制风格遵循安恒,一小时check一次。室温35°在室内坐了8小时,午饭是藿香正气水拌冰水。这场总体下来中规中矩吧。 WEB-welcome-BREAK Ctrl+U拿到flag WEB-submit-BREAK 文件上传,简单绕过 绕过就两个,一个MIMA头,一个等号换php(短标签) WEB-submit-FIX 修两个点,一个是

每日文献:2018-02-24

自然选择的分子印迹(精读第三天) 由于最近不知不觉开始涉及群体遗传学,所以准备精读(其实就是原文翻译)一篇review尽力去了解这个我陌生的领域。文章原标题为Molecular Signatures of Natural Selection, 作者Rasmus Nielsen。 群体遗传学预测 分子群体遗传学的其中一个方向就是从分子变异中区分出中性变异(仅仅受到遗传漂变的影响),找到受

每日文献:2018-02-23

自然选择的分子印迹(精读第二天) 由于最近不知不觉开始涉及群体遗传学,所以准备精读(其实就是原文翻译)一篇review尽力去了解这个我陌生的领域。文章原标题为Molecular Signatures of Natural Selection, 作者Rasmus Nielsen。 自然选择模型术语 考虑到同一个属于在不同语境下会有有些不同,也就导致目前的选择这个概念存在多种定义方式,在阅

每日文献:2018-02-20

自然选择的分子印迹(精读第一天) 由于最近不知不觉开始涉及群体遗传学,所以准备精读(其实就是原文翻译)一篇review尽力去了解这个我陌生的领域。文章原标题为Molecular Signatures of Natural Selection, 作者Rasmus Nielsen。 简介 群体遗传学数十年来一直被一个问题所困扰,那就是如果在观察物种中存在一个遗传变异,那么应该如何定量得描述

算法训练与程序竞赛题目集合(L4)

目录 L4-103 就不告诉你 输入格式: 输出格式: 输入样例: 输出样例: L4-104 Wifi密码 输入格式: 输出格式: 输入样例: 输出样例: L4-105 冠军魔术 输入格式: 输出格式: 输入样例 1: 输出样例 1: 输入样例 2: 输出样例 2: L4-106 判断题 输入格式: 输出格式: 输入样例: 输出样例: L4-107

2018腾讯校园实习招聘面经——研发工程师

时间:2018年4月15日 下午 岗位:腾讯云-运营开发 下午很荣幸的参加了腾讯在武汉专场面试,大概面试在一个小时的时间。大公司真的不一样,一套完整的流程下来感觉特别舒服。 到达面试的酒店,先是微信扫一扫签到,然后到达会议室候场,轮到自己的时候会有微信通知+短信通知。基本上面试的时间和约好的相差不大,只会晚不会早,所以如果比较晚面试的也没必要提早太久过去。 好了话不多说啦,我就回忆一下面试

java 程序设计 第九章对象和类

目录 9.1 引言 9.2 为对象定义类 9.3 示例:创建类和定义对象 9.4 使用构造方法构造对象 9.5 通过引用变量访问变量 9.6 使用Java中的类 9.7 静态变量、常量和方法 9.8 可见性修饰符  9.9 数据域封装 9.10 向方法传递对象参数 9.11 对象数组 9.12 不可变对象和类 9.13 变量的作用域 9.14 this引用 9.1