首页 > TAG信息列表 > HAOI2007
洛谷P2216 HAOI2007 理想的正方形 (单调队列)
题目就是要求在n*m的矩形中找出一个k*k的正方形(理想正方形),使得这个正方形内最值之差最小(就是要维护最大值和最小值),显然我们可以用单调队列维护。 但是二维平面上单调队列怎么用? 我们先对行处理,将其压缩为一个(n-k+1)*m的矩形;再对列进行处理,最终压缩为一个(n-k+1)*(m-k+1)的矩形,枚举最大P2216 [HAOI2007]理想的正方形
题面 有一个 \(a \times b\) 的整数组成的矩阵,现请你从中找出一个 \(n \times n\) 的正方形区域,使得该区域所有数中的最大值和最小值的差最小。 输入格式 第一行为 \(3\) 个整数,分别表示 \(a,b,n\) 的值。 第二行至第 \(a+1\) 行每行为 \(b\) 个非负整数,表示矩阵中相应位置上的数P2216 [HAOI2007]理想的正方形
题目描述 有一个 \(a \times b\) 的整数组成的矩阵,现请你从中找出一个 \(n \times n\)的正方形区域,使得该区域所有数中的最大值和最小值的差最小。 输入格式 第一行为 \(3\) 个整数,分别表示 \(a,b\) 的值。 第二行至第 \(a+1\) 行每行为 \(b\) 个非负整数,表示矩阵中相应位置上的数[POI2002][HAOI2007]反素数 题解
主要思想是贪心+搜索 首先我们考虑一个数$n=a_i^{p_i}$ 并且因数的个数为$\prod{(a_i+1)}$ 然后就OK了 对于一个反素数$n=2^a 3^b 5^c ...$,必然有且仅有连续的质因子2,3,5,7...且有$a>=b$ 否则就会有更小的数和它因数个数相同 所以我们可以直接搜索+剪枝 跑得飞快 #include<iostre[POI2002][HAOI2007]反素数 数论 搜索 好题
题目描述: 对于任何正整数x,其约数的个数记作g(x)。例如g(1)=1、g(6)=4。 如果某个正整数x满足:g(x)>g(i) 0<i<x,则称x为反质数。例如,整数1,2,4,6等都是反质数。 现在给定一个数N,你能求出不超过N的最大的反质数么? 题解: 显然,我们要求的是 $[1,N]$ 中约数个数最多且该数字最小的值。 根据[HAOI2007]修筑绿化带 题解
题意分析 给出一个 $m*n$ 的矩阵 $A$ ,要求从中选出一个 $a*b$ 的矩阵 $B$ ,再从矩阵 $B$ 中选出一个 $c*d$ 的矩阵 $C$ ,要求矩阵 $B,C$ 的边界不能重合,求矩阵 $C$ 在矩阵 $B$ 中的补集的权值和的最大值。 思路分析 通过分析题目后可以发现本题可以用二维单调队列进行求解,同时利用到[HAOI2007] 上升序列 - dp,贪心
给定序列 \(S\),有 \(m\) 次询问,每次要求输出下标字典序最小的长度为 \(l_i\) 的上升序列 Solution 考虑设 \(f[i]\) 表示从 \(i\) 发出的最长上升子序列的长度,倒序转移$ 转移时,在使得 \(f[i]\) 最大的情况下,使得 \(i\) 尽量小,即可使得字典序最小 每次询问时,检查是否有 \(f[i]=l\),luogu P2216 [HAOI2007]理想的正方形
二维RMQ问题模板。。。(虽然我用单调队列加一维RMQ过的,,,但这个更方便一些,就再拿出来写写。。跑的还快一点。。) 和一维差不多,只不过需要比较四个区域罢了。。 g[i][j][k]=max(g[i][j][k-1],max(g[i+(1<<(k-1))][j][k-1],max(g[i][j+(1<<(k-1))][k-1],g[i+(1<<(k-1))][j+(1<<(k-1))]「二分答案 + 搜索」[HAOI2007]覆盖问题
[HAOI2007]覆盖问题 题目链接:[HAOI2007]覆盖问题 题目大意 给你\(n\)个坐标,再给你3个\(l \times l\)的矩阵,让你用这些矩阵去包含这些点,要求是将所有点都包含,我们要求\(l\)的最小值 题目题解 想到二分了,不过没想到怎么爆搜 看了下题解,妙啊妙啊,牛逼 每次二分一个 \(l\) 值作为我们想P2215 [HAOI2007]上升序列
传送门 注意题目要求的字典序最小是指下标最小 容易想到 $dp$,但是发现正着做不好搞,考虑反过来搞 原本正着做是求最长上升子序列,反过来就变成求最长下降子序列 然后我们就可以求出以每个位置为起点的上升子序列的最大长度 然后直接贪心从前往后枚举即可,复杂度 $O(nm)$ 维护最长下降P2216 [HAOI2007]理想的正方形 单调队列
题目描述 有一个a*b的整数组成的矩阵,现请你从中找出一个n*n的正方形区域,使得该区域所有数中的最大值和最小值的差最小。 输入格式 第一行为3个整数,分别表示a,b,n的值 第二行至第a+1行每行为b个非负整数,表示矩阵中相应位置上的数。每行相邻两数之间用一空格分隔。 输出格bzoj1047/haoi2007 理想的正方形
题目描述 有一个ab的整数组成的矩阵,现请你从中找出一个nn的正方形区域,使得该区域所有数中的最大值和最小值的差最小。 输入格式 第一行为3个整数,分别表示a,b,n的值 第二行至第a+1行每行为b个非负整数,表示矩阵中相应位置上的数。每行相邻两数之间用一空格分隔。 输出格式 仅BZOJ 1046: [HAOI2007]上升序列 LIS+贪心
title BZOJ 1046 LUOGU 2215 Description 对于一个给定的S={a1,a2,a3,…,an},若有P={ax1,ax2,ax3,…,axm},满足(x1 < x2 < … < xm)且( ax1 < ax2 < … < axm)。那么就称P为S的一个上升序列。如果有多个P满足条件,那么我们想求字典序最小的那个。任务给出S序列,给出若干询问。对P2215 [HAOI2007]上升序列 DP
这个字典序海星 思路:\(DP\) 提交:4次 错因:刚开始把字典序理解错了,怒看题解一脸懵逼;后来往前跳的时候又没有管上升\(QwQ\)窝太菜了。 题解: 所谓的字典序是相对位置!!!而不是元素本身的大小!!! 先求出每个点往后的的最长上升子序列。 然后对于每个询问,若询问的长度\(len>=\)最长的上升子序[Bzoj1047][HAOI2007]理想的正方形(ST表)
题目链接:https://www.lydsy.com/JudgeOnline/problem.php?id=1047 题目虽然有一个n的限制,但求二维区间最值首先想到的还是RMQ,但是如果按照往常RMQ的写法,空间复杂度是O(n2*(log2(n)2)),而且需要两个求最大最小,所以会爆空间,大概也会T,233。 所以这个时候发现n还是蛮重要的,dp[i][j]表[HAOI2007]理想的正方形
传送门: #include <cstdio>#include <cstdlib>#include <cstring>#include <algorithm>#include <iostream>using namespace std;#define ll long long#define re registerconst int N=1005;inline void read(int &a){ a=0; int d=1;洛谷 P1463 [POI2002][HAOI2007]反素数
题目链接 题目描述 对于任何正整数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为反质bzoj1052-HAOI2007 覆盖问题
题面描述 某人在山上种了\(N\leq 2*10^4\)棵小树苗。冬天来了,温度急速下降,小树苗脆弱得不堪一击,于是树主人想用一些塑料薄膜把这些小树遮盖起来,经过一番长久的思考,他决定用\(3\)个\(L*L\)的正方形塑料薄膜将小树遮起来。我们不妨将山建立一个平面直角坐标系,设第\(i\)棵小P2216 [HAOI2007]理想的正方形
P2216 [HAOI2007]理想的正方形 题目描述 有一个a*b的整数组成的矩阵,现请你从中找出一个n*n的正方形区域,使得该区域所有数中的最大值和最小值的差最小。 a,b<=1000 分析题目: 首先可以想到一个O(a*b*n) 的解法: 我最开始想的办法是预处理递推出矩形中的最大值和最小值,即:用maxBZOJ 1053 - 反素数ant - [数论+DFS][HAOI2007]
题目链接:https://www.lydsy.com/JudgeOnline/problem.php?id=1053 题解: 可以证明,$1 \sim N$ 中最大的反质数,就是 $1 \sim N$ 中约数个数最多的数中,最小的那个。 证明:假设 $1 \sim N$ 中最大的反质数 $x$ 不是 $1 \sim N$ 中约数个数最多的,那么必然存在至少一个不等于 $x$ 的数字BZOJ1053 [HAOI2007]反素数ant
题意 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的最大的反质数么? Input 一个数N(1<=N<=2,000,000,000)。 Output 不超过N的最大的反质数P2219 [HAOI2007]修筑绿化带(二维单调队列)
题目描述 为了增添公园的景致,现在需要在公园中修筑一个花坛,同时在画坛四周修建一片绿化带,让花坛被绿化带围起来。 如果把公园看成一个M*N的矩形,那么花坛可以看成一个C*D的矩形,绿化带和花坛一起可以看成一个A*B的矩形。 如果将花园中的每一块土地的“肥沃度”定义为该块土