Part 0
本题也是一道水题,但洛谷最不缺的就是蒟蒻(包括我),所以今天发篇题解,庆祝本蒟蒻诞生 n n n 周年。
Part 1 题意
输入一堆数据,输出最长 K K K 连击的值 K K K。
Part 2 思路
我们可以用一个累加器累加连击次数,对于每行数据,如果与上一行数据时差不大于 1000 1000 1000 毫秒且字符正确,则累加器加 1 1 1,否则重置为 1 1 1,然后每次用一个变量取最大就行。
Part 3 代码
#include<bits/stdc++.h>
using namespace std;
int main()
{
// freopen("log.txt","r",stdin);因为数据量过大,所以要用文件读入,如果是评测就把这行注释掉
char a,b;
long long h,h_last,maxn=-1,sum=1;
cin>>a>>b>>h;
h_last=h;//提前读入一行,防止错误答案
while(cin>>a>>b>>h)//直到输入结束为止
{
if(a!=b)
{
sum=1;
continue;
}//两个字符是否相同,不相同则重置累加器
if(h-h_last<=1000) sum++;
else sum=1;//判断间隔有没有超
h_last=h;
maxn=max(maxn,sum);//取一下最大
}
cout<<maxn;
return 0;
}