题目大意:平面上有 $n$ 个点,第 $i$ 个点是 $(x_i,y_i)$。问有多少条抛物线(二次项系数为 $1$),经过这些点中不同的两个点,并且内部(不含边界)没有任何这些点。重合的抛物线只算一次。

$1\le n\le 10^5,|x_i|,|y_i|\le 10^6$。


这题特别有趣。

考虑把抛物线方程重写:$y-x^2=bx+c$。

那么如果把每个点变成 $(x_i,y_i-x_i^2)$,那么原来 $i,j$ 两点的抛物线就变成了现在 $i,j$ 两点的直线。

那么答案就是上凸包的边数。

时间复杂度 $O(n\log n)$。

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int maxn=100010;
#define FOR(i,a,b) for(int i=(a);i<=(b);i++)
#define ROF(i,a,b) for(int i=(a);i>=(b);i--)
#define MEM(x,v) memset(x,v,sizeof(x))
inline int read(){char ch=getchar();int x=0,f=0;while(ch<'0' || ch>'9') f|=ch=='-',ch=getchar();while(ch>='0' && ch<='9') x=x*10+ch-'0',ch=getchar();return f?-x:x;
}
struct point{ll x,y;bool operator<(const point &p)const{if(x!=p.x) return x>p.x;return y>p.y;}point operator-(const point &p)const{return (point){x-p.x,y-p.y};}
}p[maxn],pp[maxn],stk[maxn];
int n,m,tp;
ll cross(point p1,point p2){return p1.x*p2.y-p2.x*p1.y;
}
int main(){n=read();FOR(i,1,n) p[i].x=read(),p[i].y=read()-p[i].x*p[i].x;sort(p+1,p+n+1);pp[m=1]=p[1];FOR(i,2,n) if(p[i].x!=p[i-1].x) pp[++m]=p[i];FOR(i,1,m){while(tp>1 && cross(stk[tp]-stk[tp-1],pp[i]-stk[tp-1])<=0) tp--;stk[++tp]=pp[i];}printf("%d\n",tp-1);
}

View Code

转载于:https://www.cnblogs.com/1000Suns/p/10708817.html

CF1142C U2(计算几何,凸包)相关推荐

  1. CF1142C U2

    题目链接:洛谷 codeforces $y>x^2+bx+c$也就是$y-x^2>bx+c$ 左边是点,右边是直线. 维护上凸包. 虽然这么简单但就是做不出来. 1 #include< ...

  2. 凸包计算几何matlab,计算几何-凸包算法 Python实现与Matlab动画演示

    凸包算法是计算几何中的最经典问题之一了.给定一个点集,计算其凸包.凸包是什么就不罗嗦了 本文给出了<计算几何--算法与应用>中一书所列凸包算法的Python实现和Matlab实现,并给出了 ...

  3. 2018牛客网暑假ACM多校训练赛(第三场)I Expected Size of Random Convex Hull 计算几何,凸包,其他...

    原文链接https://www.cnblogs.com/zhouzhendong/p/NowCoder-2018-Summer-Round3-I.html 题目传送门 - 2018牛客多校赛第三场 I ...

  4. 观星(计算几何/凸包/多边形面积)

    观星 对于平面上有n个点分为三类,要求寻找一个三角形,三个顶点分别属于这三类,求解最大面积. N<=3000 首先考虑到O(n2)O(n^2)O(n2)的枚举,然后对于另外一种考虑这个点的位置, ...

  5. java经纬度凸包graham_计算几何-凸包-Graham算法

    一.点集有序化-水平排序 在计算几何中,点集往往无序,因此在计算前需要对点集进行排序,使得算法可以有序高效运行. 水平排序利用点在二维平面上固有的横纵坐标属性进行排序,只涉及点坐标的比较,与极坐标排序 ...

  6. 【CCCC】L3-009 长城 (30分),计算几何+凸包,极角排序

    problem L3-009 长城 (30分) 正如我们所知,中国古代长城的建造是为了抵御外敌入侵.在长城上,建造了许多烽火台.每个烽火台都监视着一个特定的地区范围.一旦某个地区有外敌入侵,值守在对应 ...

  7. POJ 1584 计算几何 凸包

    链接: http://poj.org/problem?id=1584 题意: 按照顺时针或逆时针方向输入一个n边形的顶点坐标集,先判断这个n边形是否为凸包. 再给定一个圆形(圆心坐标和半径),判断这个 ...

  8. 计算几何--凸包之graham scan算法

    Graham scan算法主要步骤: 找出所有已知点的y值最小,如果相同,取x值最小的点,作为基准点s. 以s为基准,所有的点按照与X轴夹角从小到大排序. 使用两个栈,一个记录已访问的点,一个记录未访 ...

  9. 【计算几何】凸包之graham算法(适合小白)

    计算几何–凸包(graham算法实现) 题目链接:LeetCode587 https://leetcode-cn.com/problemset/all/ 题目描述 在一个二维的花园中,有一些用 (x, ...

最新文章

  1. synchronized能不能保证有序性??
  2. 中文分词最佳记录刷新了,两大模型分别解决中文分词及词性标注问题丨已开源...
  3. JDK core dump分析
  4. Maven项目中获取classpath和资源文件的路径
  5. Oracle性能调整的误区
  6. GestureDetector学习之左右滑动,上下滑动屏幕切换页面
  7. MySQL 避坑指南之隐式数据类型转换
  8. 【Python】Python海龟绘图秀场
  9. 电影票房数据查询服务高性能与高可用实践
  10. CAsyncSocket使用总结
  11. 二叉树的存储结构入门(java描述)
  12. 2022-2028全球平板电脑主板行业调研及趋势分析报告
  13. 如果忘记了学信网手机号可以试着这样找回
  14. 诈骗短信报警12110
  15. UnityEditor代码分享导出材质贴图和Mesh本体
  16. 简洁风个人主页(1) html 静态布局
  17. rono在oracle的作用_Oracle服务的作用
  18. (一) u-boot 基本介绍
  19. 循环语句:for 语句详解
  20. 只有养老机器人才能拯救未来“老龄化中国”

热门文章

  1. 如何在WP-Config中设置WordPress错误日志
  2. 【 Grey Hack 】万金油脚本:在路由器上获取shell
  3. 前端面试题Vue-cli目录汇总
  4. [react] Mern和Yeoman脚手架有什么区别?
  5. 前端学习(3319):undefine和null
  6. 前端学习(3252):vs code中插件的使用
  7. react学习(67)--git 屏蔽文件不被追踪
  8. [html] 前端需要注意哪些SEO?
  9. [css] 说说你对相对定位、绝对定位、固定定位的理解
  10. [vue-cli]vue-cli怎么解决跨域的问题?