您的位置:首页 > 其它

ZCMU-1491

2017-01-01 05:34 190 查看

1491: Problem C

Time Limit: 1 Sec  Memory Limit: 128 MB

Submit: 243  Solved: 131

[Submit][Status][Web
Board]

Description

Chieh和喜欢的妹子去唱歌,然而每一首歌的歌词会有个间隔时间。。严重的问题来了。Chieh唱歌速度超快,他每次唱歌必须是连续的时间段。。比如歌词的时间为 1,2,3,4,6,7,8;他只能从1唱到4或则从6唱到8。。不间断,则时间为4 或为3。现在他想知道他最长能唱几句。。。可以从任意时间开始,但是只能唱一次。

Input

T 组数 T<=100

n 歌词数量 <=1000000

n 个整数t 时间 t<=10^9 时间递增

Output

对于每组测试数据,输出对应的答案。

Sample Input

2

10

1 2 3 4 5 7 8 9 1011

5

1 3 5 7 9


Sample Output

5

1

【解析】

刚开始被大的数据吓到了10的九次方,担心超时,所以我准备用vector做,没想到居然过了,其实这道题的话就是只要后面的比前面的多1,那么我们count就加1,如果不是了那么我们的count就变1
#include<iostream>
#include<string>
#include<cstdio>
#include<vector>
using namespace std;
vector<long long>a;
int main()
{
int t,n,i,count,max;
long long m;
scanf("%d",&t);
while(t--)
{
count=1;
max=0;
a.clear();
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%lld",&m);
a.push_back(m);
if(i>=1)
{
if(a[i]-a[i-1]==1)
count++;
if(count>max)
max=count;
if(a[i]-a[i-1]!=1)
count=1;
}
}
printf("%d\n",max);
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: