【2020牛客多校】Fake Maxpooling 单调队列求区间最大值
题目大意:给出三个参数n,m,k,构成元素为lcm(i,j)的n×m矩阵,求所有k×k子矩阵最大值之和。做法:用一个长度为 k 的单调队列维护最大值,保持队列为单调递减。压入数值之前,先将所有比之小的数值弹出(如果本身是最小且队列已满,则将队首元素弹出),然后压入数值,这样保证队首元素是该区间最大元素。代码:#include<bits/stdc++.h>using namespace std;int lcm(int a,int b) //最小公倍数{ int ta =
原创
2020-07-14 20:24:35 ·
225 阅读 ·
0 评论