博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【bzoj 4581】[Usaco2016 Open]Field Reduction(dfs)
阅读量:4974 次
发布时间:2019-06-12

本文共 2449 字,大约阅读时间需要 8 分钟。

4581: [Usaco2016 Open]Field Reduction

Time Limit: 10 Sec  
Memory Limit: 128 MB
Submit: 84  
Solved: 17
[ ][ ][ ]

Description

Farmer John's N cows (5≤N≤50,000) are all located at distinct positions in his two-dimensional fie
ld. FJ wants to enclose all of the cows with a rectangular fence whose sides are parallel to the x a
nd y axes, and he wants this fence to be as small as possible so that it contains every cow (cows on
 the boundary are allowed).FJ is unfortunately on a tight budget due to low milk production last qua
rter. He would therefore like to build an even smaller fenced enclosure if possible, and he is willi
ng to sell up to three cows from his herd to make this possible.Please help FJ compute the smallest 
possible area he can enclose with his fence after removing up to three cows from his herd (and there
after building the tightest enclosing fence for the remaining cows).For this problem, please treat c
ows as points and the fence as a collection of four line segments (i.e., don't think of the cows as 
"unit squares"). Note that the answer can be zero, for example if all remaining cows end up standing
 in a common vertical or horizontal line.
给定平面上N个点。现你可以删去至多3个点,接着你需要用一个矩形包含所有的点,点可以在矩形的边上,矩形的
边须与坐标轴平行。最小化矩形的面积并输出这个值。
5 ≤ N ≤ 50000, 1 ≤ X_i, Y_i ≤ 40000

Input

The first line of input contains N.
The next N lines each contain two integers specifying the locati
on of a cow. Cow locations are positive integers in the range 1…40,000.

Output

 Write a single integer specifying the minimum area FJ can enclose with his fence after removing up t

o three carefully-chosen cows from his herd.

Sample Input

6
1 1
7 8
10 9
8 12
4 100
50 7

Sample Output

12

HINT

Source

[ ][ ][ ]

【题解】【dfs】

【大模拟,dfs暴力枚举,从四周去点,每次把一个边界的所有点都去掉。】

#include
#include
#include
#define ll long long#define inf 1e18using namespace std;struct node{ ll heng,line;}d[50010];int n;ll lmin,rmax,hmax,umin,ans;bool vis[50010];void dfs(int t){ ll xmin,xmax,ymin,ymax; xmin=ymin=inf; xmax=ymax=-inf; for(int i=1;i<=n;++i) if(!vis[i]) xmin=min(xmin,d[i].heng),xmax=max(xmax,d[i].heng),ymin=min(ymin,d[i].line),ymax=max(ymax,d[i].line); ll sum=(xmax-xmin)*(ymax-ymin); if(!t) { if(sum
x) lmin=x; if(rmax
y) umin=y; } ans=(rmax-lmin)*(hmax-umin); dfs(3); printf("%lld\n",ans); return 0;}
[96s跑进第一页,莫名开心啊……]

转载于:https://www.cnblogs.com/lris-searching/p/9402929.html

你可能感兴趣的文章
MIS外汇平台荣获“2013年全球最佳STP外汇交易商”
查看>>
LeetCode 题解之Add Digits
查看>>
hdu1502 , Regular Words, dp,高精度加法
查看>>
SpringBoot在idea中的热部署配置
查看>>
MyEclipse连接SQL Server 2008数据库的操作方法
查看>>
JS验证图片格式和大小并预览
查看>>
laravel5.2 移植到新服务器上除了“/”路由 ,其它路由对应的页面显示报404错误(Object not found!)———新装的LAMP没有加载Rewrite模块...
查看>>
编写高质量代码--改善python程序的建议(六)
查看>>
windows xp 中的administrator帐户不在用户登录内怎么解决?
查看>>
接口和抽象类有什么区别
查看>>
Codeforces Round #206 (Div. 2)
查看>>
**p
查看>>
优先队列详解
查看>>
VS2012 创建项目失败,,提示为找到约束。。。。
查看>>
设计类图
查看>>
类对象
查看>>
[Voice communications] 声音的滤波
查看>>
SQL语言之概述(一)
查看>>
软件建模——第9章 毕业论文管理系统—面向对象方法
查看>>
[SDOI2008]洞穴勘测
查看>>