【BZOJ 4581】【Usaco2016 Open】Field Reduction
http://www.lydsy.com/JudgeOnline/problem.php?id=4581
考虑\(O(n^3)\)暴力。
实际上枚举最靠边的三个点就可以了,最多有12个点。
还是暴力= =
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
typedef long long ll;
const int N = 50003;
int x[N], y[N], id[N], n, minx, maxx, miny, maxy, ansminx, ansmaxx, ansminy, ansmaxy, a[N], tot = 0;
bool cmpx(int X, int Y) {return x[X] < x[Y];}
bool cmpy(int X, int Y) {return y[X] < y[Y];}
int main() {
scanf("%d", &n);
for (int i = 1; i <= n; ++i)
scanf("%d%d", x + i, y + i);
for (int i = 1; i <= n; ++i) id[i] = i;
minx = miny = 0x7fffffff; maxx = maxy = -0x7fffffff;
stable_sort(id + 1, id + n + 1, cmpx);
minx = min(minx, x[id[4]]);
maxx = max(maxx, x[id[n - 3]]);
for (int i = 0; i < 3; ++i) {
a[++tot] = id[1 + i];
a[++tot] = id[n - i];
}
stable_sort(id + 1, id + n + 1, cmpy);
miny = min(miny, y[id[4]]);
maxy = max(maxy, y[id[n - 3]]);
for (int i = 0; i < 3; ++i) {
a[++tot] = id[1 + i];
a[++tot] = id[n - i];
}
stable_sort(a + 1, a + tot + 1);
tot = unique(a + 1, a + tot + 1) - a;
ll ans = -1;
for (int i = 1; i < tot; ++i)
for (int j = i + 1; j < tot; ++j)
for (int k = j + 1; k < tot; ++k) {
ansminx = minx;
ansmaxx = maxx;
ansminy = miny;
ansmaxy = maxy;
for (int tmp = 1; tmp < tot; ++tmp)
if (tmp != i && tmp != j && tmp != k) {
ansminx = min(ansminx, x[a[tmp]]);
ansmaxx = max(ansmaxx, x[a[tmp]]);
ansminy = min(ansminy, y[a[tmp]]);
ansmaxy = max(ansmaxy, y[a[tmp]]);
}
if ((ansminx >= ansmaxx) || (ansminy >= ansmaxy))
ans = 0;
else
if (ans == -1)
ans = 1ll * (ansmaxx - ansminx) * (ansmaxy - ansminy);
else
ans = min(ans, 1ll * (ansmaxx - ansminx) * (ansmaxy - ansminy));
}
printf("%lld\n", ans);
return 0;
}
【BZOJ 4581】【Usaco2016 Open】Field Reduction的更多相关文章
- 【BZOJ】3052: [wc2013]糖果公园
http://www.lydsy.com/JudgeOnline/problem.php?id=3052 题意:n个带颜色的点(m种),q次询问,每次询问x到y的路径上sum{w[次数]*v[颜色]} ...
- 【BZOJ】3319: 黑白树
http://www.lydsy.com/JudgeOnline/problem.php?id=3319 题意:给一棵n节点的树(n<=1e6),m个操作(m<=1e6),每次操作有两种: ...
- 【BZOJ】3319: 黑白树(并查集+特殊的技巧/-树链剖分+线段树)
http://www.lydsy.com/JudgeOnline/problem.php?id=3319 以为是模板题就复习了下hld............................. 然后n ...
- 【BZOJ】【2084】【POI2010】Antisymmetry
Manacher算法 啊……Manacher修改一下就好啦~蛮水的…… Manacher原本是找首尾相同的子串,即回文串,我们这里是要找对应位置不同的“反回文串”(反对称?233) 长度为奇数的肯定不 ...
- 【BZOJ】1013: [JSOI2008]球形空间产生器sphere
[BZOJ]1013: [JSOI2008]球形空间产生器sphere 题意:给n+1个n维的点的坐标,要你求出一个到这n+1个点距离相等的点的坐标: 思路:高斯消元即第i个点和第i+1个点处理出一个 ...
- 【BZOJ】1002:轮状病毒(基尔霍夫矩阵【附公式推导】或打表)
Description 轮状病毒有很多变种,所有轮状病毒的变种都是从一个轮状基产生的.一个N轮状基由圆环上N个不同的基原子和圆心处一个核原子构成的,2个原子之间的边表示这2个原子之间的信息通道.如下图 ...
- 【BZOJ】【3083】遥远的国度
树链剖分/dfs序 其实过了[BZOJ][4034][HAOI2015]T2以后就好搞了…… 链修改+子树查询+换根 其实静态树的换根直接树链剖分就可以搞了…… 因为其实只有一样变了:子树 如果roo ...
- 【BZOJ】【2434】【NOI2011】阿狸的打字机
AC自动机+DFS序+BIT 好题啊……orz PoPoQQQ 大爷 一道相似的题目:[BZOJ][3172][TJOI2013]单词 那道题也是在fail树上数有多少个点,只不过这题是在x的fail ...
- 【BZOJ】【2738】&【Tsinsen】【A1333】矩阵乘法
整体二分+树状数组 过了[BZOJ][2527][POI2011]Meteors以后这题就没那么难啦~ 关键是[从小到大]依次插入数字,然后整体二分每个查询的第k大是在第几次插入中被插入的……嗯大概就 ...
随机推荐
- 初识ASP.NET MVC
我们首先从创建ASP.NET MVC项目开始.打开Visual Studio,在文件菜单中选择新建-> 项目,然后在模板中选择Web,接着选择ASP.Net Web应用程序,更改项目名称,点击确 ...
- mybatis笔记3 一些原理的理解
1,mybatis流程跟踪,原理理解 基本思路: 从SqlSessionFactory的初始化出发,观察资源的准备和环境的准备,以及实现持久层的一些过程: 进入SqlSessionFactoryBea ...
- JavaWeb_day07_JSP
本文为博主辛苦总结,希望自己以后返回来看的时候理解更深刻,也希望可以起到帮助初学者的作用. 转载请注明 出自 : luogg的博客园 谢谢配合! day07 JSP 全称 :Java Server P ...
- [示例] Firemonkey TGridLayout & TGridPanelLayout 布局
说明:使用 TGridLayout & TGridPanelLayout 来布局 源码下载:[示例]TestGridPanelLayout_布局_20161223.zip 展示:
- Python subprocess.Popen communicate() 和wait()使用上的区别
之所以会纠结到这个问题上是因为发现在调用Popen的wait方法之后程序一直没有返回.google发现wait是有可能产生死锁的.为了把这个问题彻底弄清楚,搜索一些资料过来看看: 原文链接:http: ...
- 生成Tab键或逗号分隔的CSV
<?php header("Content-type:text/csv;charset=utf-8"); header("Content-Disposition:a ...
- PHP 过滤器(Filter)
PHP 过滤器用于验证和过滤来自非安全来源的数据,比如用户的输入. 什么是 PHP 过滤器? PHP 过滤器用于验证和过滤来自非安全来源的数据. 验证和过滤用户输入或自定义数据是任何 Web 应用程序 ...
- SSH框架使用注解简化代码
注释的优势: 1.最简单直接的优势就是减少了配置文件的代码量. 2.注释和Java代码位于一个文件中,而XML 配置采用独立的配置文件.配置信息和 Java 代码放在一起,有助于增强程序的内聚性.而采 ...
- iOS之获取经纬度并通过反向地理编码获取详细地址
_locationManager = [[CLLocationManager alloc] init]; //期望的经度 _locationManager.desiredAccuracy = kCLL ...
- android 自定义控件——(三)水平线、虚线
----------------------------------View虚线或者直线(源代码下有属性解释)--------------------------------------------- ...