bzoj 1132 POI2008 Tro
大水题=_=,可我想复杂了……
很裸的暴力,就是加了个小优化……
叉积求面积 :abs(xi*yj - yi*xj) 所以去掉绝对值,把 xi 和 xj 提出来就可以求和了
去绝对值加个极角排序,每次把最左边的点当成原点,然后剩下的排序,接着枚举第二个点,求叉积之和……
坐标都是整数,用long long,最后再除2
上代码:
#include <cstdio>
#include <cstring>
#include <cstdlib>
#include <iostream>
#include <algorithm>
#include <cmath>
#define N 3010
using namespace std; struct sss
{
long long x, y;
}dian[N], now, zan[N];
int n;
long long ans = ; long long chaji(sss x, sss y)
{
return (x.x-now.x)*(y.y-now.y) - (x.y-now.y)*(y.x-now.x);
} bool cmp1(sss x, sss y) { return x.x == y.x ? x.y < y.y : x.x < y.x; }
bool cmp2(sss x, sss y ){ return chaji(x, y) > ; } int main()
{
scanf("%d", &n);
for (int i = ; i <= n; ++i) scanf("%lld%lld", &dian[i].x, &dian[i].y);
sort(dian+, dian++n, cmp1);
for (int i = ; i <= n-; ++i)
{
now = dian[i];
long long ty = , tx = ;
for (int j = i+; j <= n; ++j) zan[j] = dian[j];
sort(zan+i+, zan++n, cmp2);
for (int j = i+; j <= n; ++j)
{
ty += zan[j].y-now.y;
tx += zan[j].x-now.x;
}
for (int j = i+; j <= n-; ++j)
{
ty -= zan[j].y-now.y; tx -= zan[j].x-now.x;
ans += (zan[j].x-now.x)*ty - (zan[j].y-now.y)*tx;
}
}
if (ans % ) printf("%lld.5\n", ans/);
else printf("%lld.0\n", ans/);
}
bzoj 1132 POI2008 Tro的更多相关文章
- bzoj 1132 [POI2008]Tro 几何
[POI2008]Tro Time Limit: 20 Sec Memory Limit: 162 MBSubmit: 1796 Solved: 604[Submit][Status][Discu ...
- BZOJ.1132.[POI2008]Tro(极角排序)
BZOJ 洛谷 考虑暴力,每次枚举三个点,答案就是\(\frac12\sum_{k<j<i}(i-k)\times(j-k)\). 注意到叉积有分配率,所以固定\(k\),枚举\(i,j\ ...
- BZOJ 1132 [POI2008]Tro(极角排序)
[题目链接] http://www.lydsy.com/JudgeOnline/problem.php?id=1132 [题目大意] 平面上有N个点. 求出所有以这N个点为顶点的三角形的面积和(N&l ...
- 【刷题】BZOJ 1132 [POI2008]Tro
Description 平面上有N个点. 求出所有以这N个点为顶点的三角形的面积和 N<=3000 Input 第一行给出数字N,N在[3,3000] 下面N行给出N个点的坐标,其值在[0,10 ...
- bzoj 1132: [POI2008]Tro 计算几何
题目大意: 平面上有N个点. 求出所有以这N个点为顶点的三角形的面积和 N<=3000 题解 我们看到了n的范围,于是我们就知道这一定不是一个线性算法 所以我们尝试枚举三角形的一个点,那么我们现 ...
- 【BZOJ】1132: [POI2008]Tro
题意 给\(n(1 \le n \le 3000)\)个点,求所有三角形的面积和. 分析 首先枚举一个点,发现把其它点按照关于这个点的极角排序后第\(i\)个点关于前面\(1\)到\(i-1\)的点组 ...
- BZOJ1132: [POI2008]Tro
1132: [POI2008]Tro Time Limit: 20 Sec Memory Limit: 162 MBSubmit: 815 Solved: 211[Submit][Status] ...
- bzoj1132[POI2008]Tro 计算几何
1132: [POI2008]Tro Time Limit: 20 Sec Memory Limit: 162 MBSubmit: 1722 Solved: 575[Submit][Status] ...
- 【BZOJ1132】[POI2008]Tro 几何
[BZOJ1132][POI2008]Tro Description 平面上有N个点. 求出所有以这N个点为顶点的三角形的面积和 N<=3000 Input 第一行给出数字N,N在[3,3000 ...
随机推荐
- CHECKPOINT
http://blog.csdn.net/chenlvzhou/article/details/41518979
- android genymation eclipse安装
http://www.cnblogs.com/1114250779boke/p/3657996.html
- c++ 构造函数,拷贝构造函数,析构函数与赋值操作符
题目: 为下面的Rectangle类实现构造函数,拷贝构造函数,赋值操作符,析构函数. class Shape { int no; }; class Point { int x; int y; }; ...
- [Java] SSH框架笔记_SSH三大框架的工作原理及流程
Hibernate工作原理及为什么要用? 原理:1.通过Configuration().configure();读取并解析hibernate.cfg.xml配置文件2.由hibernate.cfg.x ...
- ios 代码截屏模糊问题解决办法
我们常用的截图方法如下所示: //尺寸是按照 UIGraphicsBeginImageContext(CGSizeMake(, )); //currentView 当前的view 创建一个基于位图的图 ...
- 移动端 viewport设置
<meta name="viewport" content="" /> width [pixel_value | device-width] wid ...
- React Native视频播放(iOS)
网站链接:http://www.ncloud.hk/%E6%8A%80%E6%9C%AF%E5%88%86%E4%BA%AB/learn-react-native-video/ React Nativ ...
- UIBootatrap:是由AngularJS UI团队编写的纯AngularJS实现的Bootstrap组件
本文为翻译文档.原文是https://angular-ui.github.io/bootstrap/(需要FQ). 准备工作: 依赖关系:这个库中包含一组基于Bootstrap组件和CSS的原生Ang ...
- 剑指Offer21 二叉树的层序遍历
/************************************************************************* > File Name: 21_PrintT ...
- Tarjan 离线算法LCA
#include<map> #include<set> #include<cmath> #include<queue> #include<cstd ...