P1440 80分求调
  • 板块学术版
  • 楼主pfrig729
  • 当前回复1
  • 已保存回复2
  • 发布时间2023/11/2 23:57
  • 上次更新2023/11/3 13:12:31
查看原帖
P1440 80分求调
730178
pfrig729楼主2023/11/2 23:57

MLEMLE了

#include<bits/stdc++.h>
using namespace std;
int n,m,a[3000003],r[3000003][25];
int _(int L,int R)
{
	int x=(int)(log(R-L+1)/log(2));
	return min(r[L][x],r[R-(1<<x)+1][x]);
}
int main()
{
	scanf("%d%d",&n,&m);
	for(int i=1;i<=n;i++)
	{
		scanf("%d",&a[i]);
		r[i][0]=a[i];
	}
	for(int j=1;(1<<j)<=n;j++)
	{
		for(int i=1;i+(1<<j)-1<=n;i++)
		{
			r[i][j]=min(r[i][j-1],r[i+(1<<(j-1))][j-1]);
		}
	}
	printf("0\n");
	for(int i=2;i<=m+1;i++)
	{
		printf("%d\n",_(1,i-1));
	}
	for(int i=m+2;i<=n;i++)
	{
		printf("%d\n",_(i-m,i-1));
	}
	return 0;
}

(虽然可以直接把那两个点下载下来,但我还是想先搞懂)

2023/11/2 23:57
加载中...