思路:
原来是想先把所有数据输入,再从数组[0]开始一直向后查找,发现... ...25分!满屏的TLE!还有WA!!
后来,想到边输入边检查,这样也许会快一点。大概是这样:

通过计算,如果连续合格的计数为n,需要的连续同学数量为m,那么一共有n-m+1种选择方案。
代码:
于是,第一代代码就诞生了:
#include <iostream>
using namespace std;
int main()
{
long long n,m,p,sum=0,taller=0;//taller是计数的变量
cin>>n>>m>>p;
long long num;
for(long long i=0;i<n;i++)
{
cin>>num;
if(num>=p)
{
taller++;
}
if(num<p)
{
if(taller>=m)sum+=taller-m+1;
taller=0;
}
}
cout<<sum;
return 0;
}
结果... ...TLE是没有了,先前的TLE全部变成了WA... ...还是25分... ...
最后发现,输入循环结束后,还会存在剩余的taller变量没有“结算

博客介绍了如何使用C++解决一道题目,最初尝试一次性读取所有数据导致超时错误(TLE),然后改为边输入边检查以提高效率,减少了超时但出现了错误答案(WA)。最终通过修正代码,在循环后结算剩余变量解决了问题,成功通过测试。
最低0.47元/天 解锁文章
1360

被折叠的 条评论
为什么被折叠?



