BZOJ 3707 圈地
闲扯
BZOJ权限题,没有权限,哭了
然后DBZ不知道怎么回事,\(O(n^3)\)直接压过去了。。。
备忘
叉积的计算公式\(x_1y_2\)
思路
n^3
暴力枚举显然
n^2
正解的思路有点神,好吧是我太弱
首先考虑如果有两个点共线了,那么最小的面积一定是里这条线最近的那个点得来的
然后考虑把所有直线找出,按斜率排序,从一条直线变到另一条直线的时候,与下一条直线的距离顺序会改变的一定是这条直线的两个端点,如果改变,交换这两个端点即可
代码
只有\(O(n^3)\)的
#include <cstdio>
#include <algorithm>
#include <cstring>
#include <cmath>
using namespace std;
const double eps=1e-8;
int n;
double ans=1e9;
struct Point{
double x,y;
Point(double xx=0,double yx=0){
x=xx;
y=yx;
}
}a[1111];
struct Vector{
double x,y;
Vector(double xx=0,double yx=0){
x=xx;
y=yx;
}
};
Vector operator - (Point a,Point b){
return Vector(b.x-a.x,b.y-a.y);
}
double corss(Vector x,Vector y){//x cross y
return abs(x.x*y.y-y.x*x.y);
}
int main(){
scanf("%d",&n);
for(int i=1;i<=n;i++){
scanf("%lf %lf",&a[i].x,&a[i].y);
}
for(int i=1;i<=n;i++){
for(int j=i+1;j<=n;j++)
for(int k=j+1;k<=n;k++)
ans=min(ans,corss(a[j]-a[i],a[k]-a[i]));
}
printf("%.2lf\n",ans/2);
return 0;
}
BZOJ 3707 圈地的更多相关文章
- BZOJ 3707: 圈地 计算几何
Description 2维平面上有n个木桩,黄学长有一次圈地的机会并得到圈到的土地,为了体现他的高风亮节,他要使他圈到的土地面积尽量小.圈地需要圈一个至少3个点的多边形,多边形的顶点就是一个木桩,圈 ...
- bzoj 3232: 圈地游戏
bzoj 3232: 圈地游戏 01分数规划,就是你要最大化\(\frac{\sum A}{\sum B}\),就二分这个值,\(\frac{\sum A}{\sum B} \geq mid\) \( ...
- [BZOJ]2132: 圈地计划 最小割
圈地计划 Description 最近房地产商GDOI(Group of Dumbbells Or Idiots)从NOI(Nuts Old Idiots)手中得到了一块开发土地.据了解,这块土地是一 ...
- BZOJ 3232: 圈地游戏 分数规划+判负环
3232: 圈地游戏 Time Limit: 20 Sec Memory Limit: 128 MBSubmit: 966 Solved: 466[Submit][Status][Discuss] ...
- BZOJ 2132 圈地计划(最小割)
题目链接:http://61.187.179.132/JudgeOnline/problem.php?id=2132 题意:n*m的格子染色黑白,对于格子(i,j)染黑色则价值为A[i][j],白色为 ...
- bzoj 2132: 圈地计划
#include<cstdio> #include<iostream> #include<cstring> #define M 100009 #define inf ...
- bzoj 2132 圈地计划(黑白染色,最小割)
[题目链接] http://www.lydsy.com/JudgeOnline/problem.php?id=2132 [题意] 给定n*m个区域,建工业区价值A,建商业区价值B,如果(i,j)有k个 ...
- BZOJ 2131 圈地计划(最小割+黑白染色)
类似于happiness的一道题,容易想到最小割的做法. 但是不同的是那一道题是相邻的如果相同则有收益,这题是相邻的不同才有收益. 转化到建图上面时,会发现,两个相邻的点连的边容量会是负数.. 有一种 ...
- bzoj 3232: 圈地游戏 01分数规划
题目大意: http://www.lydsy.com/JudgeOnline/problem.php?id=3232 题解: 首先我们看到这道题让我们最优化一个分式. 所以我们应该自然而然地想到01分 ...
随机推荐
- 7.线程id,优先级讲解
1.线程id可以通过Thread对象的getId()方法得到,在线程出了问题,为什么CPU占用这么高的时候,查的时候我们可以在堆栈信息中找到对应线程,然后干掉该线程就好! 2.而线程对象的getNam ...
- git分支流
## 新建一个iss1分支 $ git branch iss1 ## 切换到iss1分支 $ git checkout iss1 Switched to branch 'iss1' ## 查看分支,当 ...
- python之小数据池
代码块 Python 程序 是由代码块构造的.块是一个python程序的文本,它是作为一个执行单元的. 代码块:一个模块,一个函数,一个类,一个文件等都是一个代码块. 而作为交互方式输入的每个命令都是 ...
- 仿照admin的stark自定义组件的功能实现
仿照admin的stark自定义组件的功能实现:其中最主要的就是增删改查的实现 1.查:首先页面中显示表头和数据,都是动态的,而不是写死的. (1) 先看表头和表单数据:这个是查看的视图函数,但是为了 ...
- CSRF(跨站请求伪造)攻击
CSRF(跨站请求伪造)攻击 CSRF(Cross Site Request Forgery,跨站请求伪造)是一种近年来才逐渐被大众了解的网络攻击方式,又被称为One-Click Attack或Ses ...
- Linux基础命令---apwatch
arpwatch arpwatch指令可以监听网络设备和ip地址的对应关系,将发现的信息发送到系统日志“/var/log/message”. 此命令的适用范围:RedHat.RHEL.Ubu ...
- 【JavaScript 6连载】二、函数(工厂模式)
<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"& ...
- 4、CentOS6.5下安装php5.3
操作系统:CentOS6.5 环境:Apache2.2安装成功.可查看:http://www.centoscn.com/image-text/install/2014/0505/2910.html M ...
- devexpress 之 ChartControl
\}5#~mV#cr(/k1yIZ7.Lg
- git 随笔
还有一些git的指令没有用过,记录在这里. 1. 设置远程branch的指令 There is no tracking information for the current branch.Pleas ...