UOJ Logo 01wangshengquan的博客

博客

581题——演出队列—题解

2021-11-26 19:05:22 By 01wangshengquan

*题目描述 今年是镇海中学的百年校庆。学校派出了一列排好队的同学参加校庆演出,每个同学都有不同的身高。为了演出时效果好点,导演需要挑选连续排在一起的一些同学参加演出,并且要求这些同学的身高从前到后是越来越高的。 请问:最多可以挑出多少个同学参加演出? 输入格式 第一行只有一个整数n。 第二行有n个正整数(互相之间以一个空格分隔),表示连续排列的每个同学的身高。 输出格式 只有一行,该行只有一个整数,表示最多可以挑出的同学数。 样例数据 input 13 176 171 172 173 179 177 178 175 176 177 170 178 179 output 4 数据规模与约定 80%的数据1≤n≤1000 100%的数据1≤n≤50000,每个人的身高都不超过500000。 时间限制:1s 空间限制:256MB* 由题可得:导演需要挑选连续排在一起的一些同学参加演出,所以可以通过比较前后身高的大小,并记录,最后比较出最大次数,即为答案 代码实现如下:

#include<bits/stdc++.h>
using namespace std;
int main()
{

int n,a[50003],j=0,num[50003]={},max=0;//定义同学个数、身高数组、计时器、答案数组和最多学生
cin>>n;//输入学生个数
for(int i=0;i<n;i++)
{
    cin>>a[i];//输入
}
for(int i=0;i<n;i++)
{
    if(a[i]<a[i+1])//比较连续身高
    {
        num[j]++;//身高数组++
    }
    else
    {
        j++;//计时器+1
    }
}
for(int i=0;i<n;i++)
{
    if(num[i]>=max)//比较最大学生人数
    {
        max=num[i];//最大赋值
    }
}
cout<<max+1;//输出
return 0;

} //以上仅代表个人观点,用于学术讨论,不希望未经允许盗用 、传播

评论

Eric123
厉害

发表评论

可以用@mike来提到mike这个用户,mike会被高亮显示。如果你真的想打“@”这个字符,请用“@@”。