//
#include<bits/stdc++.h>
using namespace std;
const int N=1e6+7;
int in[N],dp[N][30];
int n,m;
void init()
{
int i,j,cnt=(int)log2(n);
memset( dp,0x3f,sizeof( dp ) ); // 0x3f
for( i=1;i<=n;i++ ) dp[i][0]=in[i];
for( j=1;j<=cnt;j++ )
for( i=1;i+(1<<j)<=n+1;i++ ) // j-1
dp[i][j]=min( dp[i][j-1],dp[ i+(1<<(j-1)) ][j-1] );
}
int f( int x,int y )
{
int len=(int)log2( y-x+1 ); // min
return min( dp[x][len],dp[ y-(1<<len)+1 ][len] );
}
int main()
{
int x,y,i;
while( cin>>n>>m )
{
for( i=1;i<=n;i++ ) cin>>in[i];
init();
for( i=1;i<=n-m+1;i++ ) cout<<f( i,i+m-1 )<<endl;
}
return 0;
}
蓝桥杯_m计划_倍增
猜你喜欢
转载自blog.csdn.net/qq_63173957/article/details/125125209
今日推荐
周排行