好神的单调栈啊。。。 1047: [HAOI2007]理想的正方形 Description 有一个a*b的整数组成的矩阵,现请你从中找出一个n*n的正方形区域,使得该区域所有数中的最大值和最小值的差最小。 有一个a*b的整数组成的矩阵,现请你从中找出一个n*n的正方形区域,使得该区域所有数中的最大值 ...
分类:
其他好文 时间:
2016-09-10 15:58:12
阅读次数:
140
多次询问最长上升序列的最小字典序。反过来求最长上升子序列。每次从左到右扫一边就可以了 1046: [HAOI2007]上升序列 Description 对于一个给定的S={a1,a2,a3,…,an},若有P={ax1,ax2,ax3,…,axm},满足(x1 < x2 < … < xm)且( ax ...
分类:
其他好文 时间:
2016-09-10 15:56:16
阅读次数:
189
bzoj1047[HAOI2007]理想的正方形 题意: 有一个a*b的整数组成的矩阵,求一个n*n的正方形区域,使得该区域所有数中的最大值和最小值的差最小。a,b≤1000,n≤100 题解: 做4次单调队列。先利用单调队列求出第i行第j列到第i行第j+n-1列的最大最小值,再利用这个求出第i行第 ...
分类:
其他好文 时间:
2016-07-23 13:44:53
阅读次数:
216
Description 对于一个给定的S={a1,a2,a3,…,an},若有P={ax1,ax2,ax3,…,axm},满足(x1 < x2 < … < xm)且( ax1 < ax2 < … < axm)。那么就称P为S的一个上升序列。如果有多个P满足条件,那么我们想求字典序最小的那个。任务给出 ...
分类:
其他好文 时间:
2016-07-14 21:47:10
阅读次数:
175
Description 有一个a*b的整数组成的矩阵,现请你从中找出一个n*n的正方形区域,使得该区域所有数中的最大值和最小值的差最小。 有一个a*b的整数组成的矩阵,现请你从中找出一个n*n的正方形区域,使得该区域所有数中的最大值和最小值的差最小。 Input 第一行为3个整数,分别表示a,b,n ...
分类:
其他好文 时间:
2016-07-13 23:06:22
阅读次数:
196
【题目大意】 有一个a*b的整数组成的矩阵,现请你从中找出一个n*n的正方形区域,使得该区域所有数中的最大值和最小值的差最小。 【思路】 裸的二维单调队列。二维单调队列的思路其实很简单: (1)对于每一行维护两个宽度为n的滑动窗口记录单行中的min和max,和POJ2823一个道理。此时相当于把n个 ...
分类:
其他好文 时间:
2016-05-02 00:33:18
阅读次数:
180
1046: [HAOI2007]上升序列 Description 对于一个给定的S={a1,a2,a3,…,an},若有P={ax1,ax2,ax3,…,axm},满足(x1 < x2 < … < xm)且( ax1 < ax2 < … < axm)。那么就称P为S的一个上升序列。如果有多个P满足条 ...
分类:
其他好文 时间:
2016-04-24 15:37:16
阅读次数:
186
读入以后想枚举j,用个maxv[i][j]数组表示在第i行,从第j个开始n个的最大值。 后来再枚举i,记录最大值。 最小值同理。 复杂度O(abn)。 #include #include #include using namespace std; const int maxn = 1000; con... ...
分类:
其他好文 时间:
2016-04-11 22:15:38
阅读次数:
164
Description 对于任何正整数x,其约数的个数记作g(x)。例如g(1)=1、g(6)=4。 如果某个正整数x满足:g(x)>g(i) 0<i<x,则称x为反质数。例如,整数1,2,4,6等都是反质数。 现在给定一个数N,你能求出不超过N的最大的反质数么? 对于任何正整数x,其约数的个数记作 ...
分类:
其他好文 时间:
2016-04-09 00:14:09
阅读次数:
176
首先求出以每个数为开头上升序列长度,即倒着做最长下降子序列 然后,把字典序尽量小的放前面 即若要求的序列长度为x,如果以第一个数(字典序最小的数)开头的最长上升子序列大等于x,则将它放在答案第一个,第二个数开头小于x,则舍弃,第三个大于x-1,放答案第二个,以此类推 #include<algorit ...
分类:
其他好文 时间:
2016-03-31 23:26:47
阅读次数:
198