【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大是在第几次插入中被插入的……嗯大概就 ...
随机推荐
- 在MongoDB的MapReduce上踩过的坑
太久没动这里,目前人生处于一个新的开始.这次博客的内容很久前就想更新上来,但是一直没找到合适的时间点(哈哈,其实就是懒),主要内容集中在使用Mongodb时的一些隐蔽的MapReduce问题: 1.R ...
- DSP的Gel作用
转自:http://blog.csdn.net/azhgul/article/details/6660960 最近刚在研究Davinci系,特此MARK下,以资后续学习之用. DSP的Gel作用 1 ...
- CSS3新特性应用之用户体验
一.光标 新增加not-allowed光标,不允许访问 隐藏光标,在触模应用上很有用,css2.1需要一个透明的图片来实现,而css3直接用cursor:none即可. 完整代码: curosr: u ...
- javascript代码 调试方法
你的代码可能包含语法错误,逻辑错误,如果没有调试工具,这些错误比较难于发现. 通常,如果 JavaScript 出现错误,是不会有提示信息,这样你就无法找到代码错误的位置. 在程序代码中寻找错误叫做代 ...
- Android中通信协议
一.TCP/IP协议(传输层协议) 1.Socket与ServerSocket Socket是应用层与TCP/IP协议簇通讯的中间抽象层,Socket是一组接口,在设计模式中,Socket的设计就是门 ...
- ViewPager之引导页
一.概述 ViewPager是android-support-v4中提供的类,它是一个容器类,常用于页面之间的切换. 本文介绍ViewPager最基础的应用:在多个View之间进行切换,亦即ViewP ...
- UILabel 自适应宽高
#import <UIKit/UIKit.h> @interface UILabel (UILabel_LabelHeighAndWidth) + (CGFloat)getHeightBy ...
- Augularjs-起步
今年项目的需要,开始琢磨研究前端开发,由于之前项目已经用Angularjs了,就顺其而然的继续沿用. 在使用Angularjs之前,先要准备好工具:Nodejs.npm.git.bower.fis 下 ...
- Atitit linux获取项目运行环境版本
Atitit linux获取项目运行环境版本 1.1. Nginx版本1 1.2. Php版本1 1.3. Mysql版本2 1.4. Redis版本2 1.1. Nginx版本 [root@iZ25 ...
- 数据备份的OSS接口
最近在做一个新的项目,从RDS备份到OSS,进行数据备份以及后续的还原.这边对阿里云的OSS数据上传接口进行说明,先做下笔记先简单介绍下OSS: ①Object 在OSS中,用户操作的基本数据单元是O ...