little_QL @ 2023-07-27 19:58:32
代码如下:
#include<bits/stdc++.h>
using namespace std;
const int N=2000005;
int n,m;
int a[N],q[N];
int w=1,v=0;
int main()
{
cin>>n>>m;
for(int i=1;i<=n;i++)
{
cin>>a[i];
}
cout<<"0"<<endl;
for(int i=1;i<n;i++)
{
while((w<=v)&&((i-q[w])>=m))
{
w++;
}
while((w<=v)&&(a[q[v]]>=a[i]))
{
v--;
}
v++;
q[v]=i;
cout<<a[q[w]]<<endl;
}
return 0;
}
by Anli_li_father @ 2023-07-27 20:15:04
主要是输入输出时长较长
优化方案:
1.加入以下代码
std::ios::sync_with_stdio(false);
此时要注意 cin 和 scanf ,cout 和 printf 不能混用
2.直接使用 scanf 和 printf 或者快读快输
by little_QL @ 2023-07-28 10:14:36
@Anli_li_father 谢谢
by little_QL @ 2023-07-28 10:16:35
@Anli_li_father 还是有两个点TLE
by gzxworld @ 2023-08-22 10:39:06
@ZLM12345
把
cout<<a[q[w]]<<endl
改为
cout<<a[q[w]]<<'\n'
by Code_on_Cloud @ 2024-01-01 12:05:17
@gzxworld 还真是,好神奇