AC代码

麦睿生  •  1个月前


#include<bits/stdc++.h>
using namespace std;
long long a[90005],i,ch[90005],maxn,m2=0,j;//按题目要求定义
long long n,m;
int main()
{
	cin>>n>>m;//输入
	for(i=1;i<=n;i++)
	{
		cin>>a[i];//输入密钥
	}
	for(i=1;i<=m;i++)
	{
		ch[i]=i;
	}
	for(i=1;i<=n-m+1;i++)
	{
		m2++;
		if(m2>m)
		{
			m2=m2-m;
		}
		maxn=-1000000000000000;
		for(j=1;j<=m;j++)
		{
			if(a[ch[j]]>maxn)
			{
				maxn=a[ch[j]];
			}
		}
		cout<<maxn;
		ch[m2]+=m;
	}
	return 0;
}

枚举法是正解吗?


评论:

正解应为单调队列


凌艺樽  •  1个月前