首先朴素算法极为简单

n^3对吧

然后思考挂上log

排序

然后枚举第一个点

接着再按向量位置关系越靠右越好排序

接着维护一个向量后缀和就完了。

但是这个题卡精度。

long double 就好了

#include<bits/stdc++.h>
using namespace std;
const int N=3e4;
#define lb long double
const lb eps=1e-21;
const lb INF=1e21;
int cmp(lb A){if(fabs(A)<eps)return 0;else return (A>0)?1:-1;
}
int equal(lb A,lb B){return (cmp(A-B)==0);
}
struct Point{lb x,y;Point(lb _x=0,lb _y=0):x(_x),y(_y){}friend Point operator + (Point A,Point B) {return Point(A.x+B.x,A.y+B.y);}friend Point operator - (Point A,Point B) {return Point(A.x-B.x,A.y-B.y);}friend Point operator * (Point A,lb k){return Point(A.x*k,A.y*k);}friend Point operator / (Point A,lb k){return Point(A.x/k,A.y/k);}lb ang(){return atan2(y,x);}void read(){scanf("%Lf%Lf",&x,&y);}
}p[N],tmp[N];
int top=0;
lb Cross(Point A,Point B){return (A.x*B.y-A.y*B.x);
}
bool cmpCross(Point A,Point B){return(cmp(Cross(A,B))>0);
}
bool cmpheight(Point A,Point B){return A.y<B.y||(A.y==B.y&&A.x<B.x);
}
int n;
lb ans=0;
int main(){scanf("%d",&n);for(int i=1;i<=n;i++){p[i].read();}sort(p+1,p+1+n,cmpheight);for(int i=1;i<=n;i++){top=0;for(int j=i+1;j<=n;j++){tmp[++top]=p[j]-p[i];}    sort(tmp+1,tmp+1+top,cmpCross);Point sum=Point(0,0);for(int j=top;j>=1;j--){ans+=Cross(sum,tmp[j]);sum=sum-tmp[j];}}printf("%.1Lf",ans/2);
//  cout<<ans/2;
}

转载于:https://www.cnblogs.com/Leo-JAM/p/10079246.html

省选专练[POI2008]TRO-Triangles相关推荐

  1. R6饮料AK赛(NOIP模拟赛)/省选专练HDU 5713 K个联通块

    我好菜啊100+60+30 滚犊子吧,两天加起来才410搞个屁我一年前都可以考400 不说了,题毕竟比较难 T1还是水题但是比昨天难 这是一个开绝对值不等式的题. 根据对奇数和偶数的最优根的归纳一定有 ...

  2. 省选专练之文艺计算姬

    "奋战三星期,造台计算机".小W响应号召,花了三星期造了台文艺计算姬. 文艺计算姬比普通计算机有更多的艺术细胞. 普通计算机能计算一个带标号完全图的生成树个数,而文艺计算姬能计算一 ...

  3. 省选专练(学习)可持久化Trie树(BZOJ3261)

    这个似乎也不是好难啊 但是可持久化Trie还是可以干许多线性基不能干的事. 什么是可持久化Trie? 顾名思义:是一种可以持久化的Trie树 他的建树方式和键值式线段树方式类似 也支持版本的减法 查询 ...

  4. 省选专练[CQOI2007]涂色

    不好理解的DP 伪区间DP F(i,j)表示子串i-j实现的方式最小 当i=j时明显为1 当s[i]==s[j]时 这里是理解的重难点: 通过递归可知当你刷i的时候顺便刷到j就好了 然后就是标准的区间 ...

  5. 省选专练之后缀自动机SPOJ1811LCS - Longest Common Substring

    陈老师引入SAM的例题 求两个串的LCS 直接建一个串的SAM,并且把另外一个串放进去跳. 这个方法很经典! 几乎满足了所有两个串的公共串问题的所有解法 有巨子说这个跳是均摊Log的,我也不知道QwQ ...

  6. 省选专练之神仙贪心IOI2013Robert

    [问题描述] 小沐把玩具扔在地板上,乱七八糟.庆幸的是,有一种特殊的机器人可以收拾玩具.不过他需要 确定哪个机器人去拣哪个玩具. 一共有 T 个玩具,整数 w[i]表示这个玩具的重量,整数 s[i]表 ...

  7. 省选专练(学习)AC自动机

    我好菜啊 AC自动机都不会 AC自动机可以干什么: 用一个模板串匹配多个子串. 这便让AC自动机可以干许多KMP和Tri树不能干的事. AC自动机的构造 首先建立一颗Trie树. 其次利用KMP的思想 ...

  8. 省选专练[POI2005]SAM-Toy Cars

    经典贪心 策略如下: 每次贪心让最需要的放下 易证正确 #include<bits/stdc++.h> using namespace std; const int N=1e6; inli ...

  9. 省选专练[NOI2008]志愿者招募

    一类新式网络流问题 按时间为键值拆点 链式连边. 考点:流量平衡思想 考点出处:网络流24题最长K重区间覆盖问题 建边: 每一天向下一天连INF-A[i],0的边 每一次劳工用差分的方式建边INF,c ...

最新文章

  1. Dockerfile镜像优化方案指引
  2. 创建 OVS vlan101 并部署 instance - 每天5分钟玩转 OpenStack(139)
  3. Codeforces 463E Caisa and Tree
  4. 读书笔记-沙漠里的细水微光
  5. C++ 指向指针的指针(多级间接寻址)
  6. ARKit从入门到精通(3)-ARKit自定义实现
  7. sklearn的train_test_split函数
  8. 嵌入式Linux系统编程学习之三十线程的同步
  9. ajax瀑布流 dede,dedecms加载更多,无限下拉瀑布流插件
  10. 利用K8S技术栈打造个人私有云(连载之:K8S环境理解和练手)
  11. 灯谜大全查询易语言代码
  12. LabVIEW程序测试
  13. c语言编程实现电脑关机,C语言让电脑关机?system函数功能够大够硬
  14. 二维数组行列互调显示出来。如:123456789变成147258369。
  15. 解决树莓派4B从USB启动的问题
  16. Python统计微信消费!生成微信消费账单!真强大!
  17. Windows软件打包工具的使用
  18. would dispatch back to the current handler URL [/student] again. Check your ViewResolver setup
  19. 三节锂电池充电管理芯片,IC电路图,BOM物料表
  20. openCV(贾志刚视频)笔记

热门文章

  1. 前端资源:分享7 个常用的 Vue.js 开源组件库
  2. 把ChatGPT (野猫),养成家猫(企业专用的ChatGPT)
  3. 复工复产调研实践报告
  4. 【深度学习】外置显卡选购及搭建环境
  5. 【UE4】GamePlay框架应用(蓝图)
  6. 使用Icon图标的几种方式
  7. python的逆袭之路_菜鸟逆袭之路:从月薪8千到2万,勇敢的去做改变才会成功
  8. 学生课间10分钟鸦雀无声遭反对,教育部做出最新响应
  9. 大数据之Hive:hive中的四个by
  10. lodash中difference、differenceBy、differenceWith有什么区别?