noip导刊
NOIP模拟赛10月4日分析;Problem #1: 矩形分割(cut)简单题
题意简述
给出一个N*M的矩阵中N-1条横线和M-1条竖线的切割代价,求把矩形分割成1*1的小块的最小代价。 ;算法1:贪心
分析:每切一刀横刀,横的块数+1,则竖的每切一刀都要多算1的代价。
每切一刀竖刀,竖的块数+1,则横的每切一刀都要多算1的代价。
显然放在越前切的刀所需要的代价要少,而最终所有的刀都得被切到,将代价高的刀放在前面切自然更优。得到贪心算法,每次挑一条最大代价的分割线切下去。用队列实现。
1、分别将横切与竖切数据按从大到小的顺序形成有序队列;
2、设定双指针指向横竖队列队头;
; 3、比较两指针指向值,选择大的切,计算代价,下移指针;
4、直到某一队空为止,计算剩余的代价。
时间复杂度O(log(N))(贪心是线性时间,此复杂度为快排所需时间)。
算法2:DP
由于每条线必切,每切一条总是使块数加1,则将第I条横分割线和第J条横分割线上下对掉或将第I条竖分割线和第J条竖分割线上下对掉,是不会影响结果的。 ; 将横分割线和竖分割线分别按大至小快排一遍。使得切刀按从左至右从上至下顺序。
记F[I,j]表示切了前I条横分割线,前J条横分割线的最小代价。
每横线切I刀,总共分为I+1块横块,每竖线切J刀,总共分为J+1块横块。则有
F[I,j]=min{F[i-1,j]+row[i]* (j+1),F[I,j-1]+line[j]*(i+1)}
row[i]与line[j]代表横竖切刀代价,最后答案即为F[n-1,m-1]。
时间复杂度是O(N^2)。
;Problem #2: 牛宫(long)
题意简述
求一个矩阵中平均数大等于0的最大子矩阵的面积。 ;解题思路
首先,平均数大于等于0等价于和大于等于0,这样便于处理。
方法1:O(N^6)枚举获得部分分。
方法2:针对问题特点改进
二维问题常常可以转为一维来处理,对于一维问题就比较容易思考。
注意到题目要求的是“和”,因此如果将连续若干行的每列分别相加求和变为一行,并不会影响到求解。; 枚举连续行的组合,将二维矩阵压缩为了一维的数列。即将问题转化为在一行数中找出连续和大等于0???最长的一段。
如何快速求得一行数中连续和大等于0的最长的一段?
常用的连续和计算方法:是先预处理出前i个数的和sum[i],则sum[i,j]=sum[j]-sum[i-1]。
由于条件是sum[i,j]=0,不妨尝试把sum数组计算出来,再对它进行研究。
; 假设已知最优区间是从第一个数开始,我们要找出它的右边界。则以i为右边界的区间的和即为sum[i]。易知当sum[i]=0时状态合法,而i最大则为最优。
当然,最优区间不一定是从第一个数开始的。假设最优区间的左边界为t,则此时以i为右边界的区间的和即为sum[i]-sum[t-1],枚举i与t,从其中找出大等于0的最长的区间(长度为i-t+1)。
尽管效率提高至o(n^4),但还是不够优?没有用好题目中只需大等于0的条件。; 再一次注意观察sum数组。考虑固定右界i,如果左界t与t+1的sum值均为合法解,则t+1的合法解时必然不如t优(因为左边界不断往右移动,而右边界不变,区间变短)。反之,对于固定的左界t,只需找到sum(i)=sum(t)的最大右界值即可,这就具有了某种意义上的单调性。能否利用呢?
将sum按照从大到小排序(注意需要保留原始位置的信息),并且设定一个头指针指向排序后的sum数组队头。枚举左边界,即每次移动左边界后,右界通过检查指针指向的sum值。
如果指向的sum值减去左界的sum值合法了,则不断向后移,直到相减0。; 在移动过程中找出原始位置最后面的,看是否能够更新最优值。(注意需要将区间长度乘以压缩的行数才是面积)至此,问题得到比较好的解决。
算法简述
1、枚举连续行,压缩为一维 ;
2、在一维区间中求出sum数组(sum[i]=sum[i-1]+num[i],sum[0]=0),并且记下每个sum值的原始位置;
3、将sum快排(注意需要保留原始位置的信息),形成队列,设head=1;
4、从0至n-1枚举left,while sum[head]-sum[l
您可能关注的文档
- Matlab语言及应用09_控制系统的分析.ppt
- MATLAB逻辑运算与控制结构1.ppt
- matlab河南工业大学课件第6章.ppt
- MAYA 玻璃材质.doc
- MBA、MF、MPAcc论文格式要求.doc
- Maya特效制作第二章.ppt
- MBE维护手册1.pptx
- McCabe–Thiele法图解法及其修正.ppt
- MC9S12XET256MAA中文.docx
- MCChina A-beijing金.ppt
- 安徽省华师联盟2025-2026学年高三上学期1月质量检测生物试卷+答案.doc
- 安徽省华师联盟2025-2026学年高三上学期1月质量检测语文试卷+答案.doc
- 四川省绵阳南山中学实验学校2025-2026学年高三上学期1月月考数学含答案.doc
- 2026届辽宁省大连市高三上学期双基考试物理试卷+答案.doc
- 辽宁名校联盟2026年1月高三上期末联考质量检测化学含答案.doc
- 辽宁名校联盟2026年1月高三上期末联考质量检测生物含答案.doc
- 辽宁名校联盟2026年1月高三上期末联考质量检测英语含答案.doc
- 辽宁名校联盟2026年1月高三上期末联考质量检测政治含答案.doc
- 黑龙江省龙江教育联盟2026年1月高三上学期期末考试化学含答案.doc
- 黑龙江省龙江教育联盟2026年1月高三上学期期末考试生物含答案.doc
原创力文档

文档评论(0)