Usaco Training Section 6.1 A Rectangular Barn

Farmer John 打算扩大奶牛生意,购买了一块矩形牧场,但部分区域损坏无法用于建造牛棚。问题在于找到最大的不包含损坏区域的矩形牛棚面积。题目提供了输入格式和样例输入输出,并指出可以使用动态规划方法求解,需要注意空间限制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

A Rectangular Barn 矩形牛棚
到底是个资本家,Farmer John 想通过买更多的奶牛来扩大它的生意.它需要给奶牛建造一个新的牛棚.FJ 买了一个矩形的R(1 <= R <= 3000)行C(1 <= C <= 3000)列的牧场.不幸的是,他发现某些1 x 1的区域被损坏了,所以它不可能在把整个牧场建造成牛棚了.FJ 数了一下,发现有P(1 <= p <= 30000)个1 x 1 的损坏区域并且请你帮助他找到不包含损坏区域的面积最大的牛棚.
PROGRAM NAME: rectbarn
INPUT FORMAT
• 第1 行: 三个空格隔开的整数 R, C, and P.
• 第2..P+1 行: 每行包含两个空格隔开的整数, r 和c, 给出一个损坏区域的行号和列号.
SAMPLE INPUT (file rectbarn.in)
3 4 2
1 3
2 1
OUTPUT FORMAT
1 行: 牛棚的最大可能面积
SAMPLE OUTPUT (file rectbarn.out)
6
分析:这题求最大的未损坏矩形区域面积,可以用dp解决。

在每个点记录其向上最大距离h,以及满足h的情况下,向左和向右的最大距离l和r(包含该点)

则这个点向上的矩形面积为:h*(l+r-1)

注意空间问题:不能超过16MB,要用滚动数组

#include<bits/stdc++.h>
#define ll long long
#define ull unsigned long long
#define inf 2147483647
#define mp make_pair
#d
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值