CF1142C U2(计算几何,凸包)

题目大意:平面上有 $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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/411710.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[html] web workers有用过吗?能帮我们解决哪些问题?

[html] web workers有用过吗&#xff1f;能帮我们解决哪些问题&#xff1f; 提供协程能力&#xff0c;如果有一个比较密集的计算任务&#xff0c;可以放到另一个进程中处理&#xff0c;等处理好了再把结果传回主程&#xff0c;这样主要进程就不会阻塞&#xff0c;页面可以正常…

计算机单词修改是否正确,计算机组装必懂的53个单词及装机步骤51条.doc

计算机组装必懂的53个单词及装机步骤51条2007-05-26 11:43计算机组装必懂的53个单词及装机步骤51条计算机组装DIY(Do It Yourself)至少要看懂的五十三个英文单词和缩写也许英语单词对大部分的电脑玩家不算是很困难的&#xff0c;但是对于一些老年用户来说&#xff0c;这些英语单…

matlab 矩阵jocobi迭代_第6章 解线性方程组的迭代法(基于MATLAB)

前面我们已经知道对于线性方程组&#xff0c;一般有两种数值解法&#xff1a;直接法和迭代法。直接法前面已经写过了&#xff0c;没看的同学可以移步阅读&#xff1a;直接法。本次主要讲述迭代法及其相应的MATLAB代码。考虑线性方程组当 为低阶稠密阵时一般采取直接法进行求解。…

全文服务(Microsoft 搜索)不可用。系统管理员必须启动此服务

全文服务(Microsoft 搜索)不可用。系统管理员必须启动此服务。1.打开sql server服务管理器 2.在服务下拉框中选microsoft seardh 3.点启动 4.并选中当启动os时自动启动服务 转载于:https://www.cnblogs.com/Kennytian/archive/2008/05/30/1210418.html

防火墙架构解析

防火墙本身就是一台为网络而设计的计算机&#xff0c;与通用计算机一样防火墙是由硬件和软件组成&#xff0c;现今防火墙有着多种硬件技术架构&#xff0c;不同的硬件架构有着各自不同的特点。先说明一下什么是处理器体系结构和体系架构。体 系 架 构 &#xff1a;CPU架构是CPU…

[html] 你有了解HTML5的地理定位吗?怎么使用?

[html] 你有了解HTML5的地理定位吗&#xff1f;怎么使用&#xff1f; var xdocument.getElementById("demo"); function getLocation() { if (navigator.geolocation) { navigator.geolocation.getCurrentPosition(showPosition); } else { x.innerHTML"该浏览…

apache 修改服务器配置,Apache服务器配置全攻略

在使用子进程处理HTTP请求的Web服务器上&#xff0c;由于要首先生成子进程才能处理客户的请求&#xff0c;因此反应时间就有一点延迟。但是&#xff0c;Apache服务器使用了一个特殊技术来摆脱这个问题&#xff0c;这就是预先生成多个空余的子进程驻留在系统中&#xff0c;一旦有…

易驾佳智能机器人教练_机器人教练创始人马宏先生受邀到中国人民大学进行经验分享...

4月2日&#xff0c;北京易驾佳信息科技有限公司创始人、机器人教练创始人马宏先生受邀前往中国人民大学&#xff0c;与MBA在学学生分享企业经营管理经验。从个人创业发展历程、多年来对驾培行业的洞察及转型升级方向等方面与大家进行了分享、交流。期间&#xff0c;马宏先生跟大…

[html] 说说你对<meta>标签的理解

[html] 说说你对标签的理解 设置meta标签 设置页面长串数字不与跳转防止长串数字电话或以邮箱的形式外链出去 ## 设置meta标签 IE适配用于IE浏览器的适配 设置meta标签 移动端IOS用于适配苹果手机&#xff0c;用于全屏显示 设置meta标签 清除页面缓存Cache-Control头域Cache-C…

实现控件的随意拖动

因为客户要求程序要在浏览器上运行&#xff0c;但是这些信息&#xff08;这个程序只在政府某部门内部使用&#xff09;并不需要公开&#xff0c;所以我们选择使用Windows应用程序&#xff0c;并将该程序嵌入到网页中。。。。 就我个人做的这部分简单的说下&#xff0c;我负…

导出sql文件_(一)SQL基本知识

一 、SQL的特点1.综合统一&#xff1a;SQL集数据定义语言DDL、数据控制语言DCL的功能于一体&#xff0c;语言风格统一&#xff0c;可以独立完成数据库生 命周期中的全部活动(定义关系模式&#xff0c;插入数据&#xff0c;建立数据库&#xff1b;对数据库中的数据进 行查询和更…

文件下载时,文件名乱码问题

文件下载时&#xff0c;解决不同浏览器文件名乱码问题 public static String encodeFileName(HttpServletRequest request, String pFileName) {String userAgent request.getHeader("USER-AGENT");try {if (userAgent.contains("msie") || userAgent.con…

[html] 说说你对影子(Shadow)DOM的了解

[html] 说说你对影子(Shadow)DOM的了解 web component的API&#xff0c;用来给组件创建子DOM树&#xff0c;就像楼上说的&#xff0c;不受外部style影响&#xff0c;外部通过选择器查询也不会查到里面来。它有两种模式 open和closed&#xff0c;open模式可以获取shadow root&a…

的引用_左值、右值、左值引用、右值引用

【导读】&#xff1a;本文主要详细介绍了左值、右值、左值引用、右值引用以及move、完美转发。左值和右值左值(left-values)&#xff0c;缩写&#xff1a;lvalues右值(right-values)&#xff0c;缩写&#xff1a;rvalues直接上官网查&#xff0c;我一向倡导自己去懂得原理&…

常用的开始→运行→输入命令集锦

gpedit.msc-----组策略sndrec32-------录音机Nslookup-------IP地址侦测器explorer-------打开资源管理器logoff---------注销命令tsshutdn-------60秒倒计时关机命令lusrmgr.msc----本机用户和组services.msc---本地服务设置oobe/msoobe /a----检查XP是否激活notepad--------打…

小白兔生小白兔-菲波拉契数列问题

有一对小白兔,从出生后第3个月起每个月都生一对小白兔,小白兔长到第三个月后每个月又生一对小白兔,假如小白兔都不死,问每个月的小白兔总数为多少&#xff1f; 这道题是典型的斐波拉切数列问题&#xff0c;其特点就是从第三列开始就等于前两列之和&#xff0c;算法&#xff1a;…

[html] 解释下你对GBK和UTF-8的理解?并说说页面上产生乱码的可能原因

[html] 解释下你对GBK和UTF-8的理解&#xff1f;并说说页面上产生乱码的可能原因 gbk和utf8的理解我们这里将以最简单最容易理解的方式来描述GBK和UTF8的区别&#xff0c;以及它们分别是什么。GBK编码&#xff1a;是指中国的中文字符&#xff0c;其它它包含了简体中文与繁体中…

控制反转_Spring:IOC 控制反转

Spring 概述Spring 是什么Spring 是分层的 Java SE/EE 应用 full-stack (全栈式) 轻量级开源框架。全栈式&#xff1a;对各种主流技术和框架都进行了整合&#xff0c;同时对三层架构都提供解决方案。轻量级和重量级的划分主要依据就是看它使用了多少服务&#xff0c;启动时需要…

TAB选项卡

TAB选项卡&#xff1a;下载用Java Script模仿各种作业系统的选项卡&#xff0c;老外就是牛&#xff0c;不仅支援多样式的即时切换&#xff0c;同时也支援每个选项卡是否附带图示的切换选项&#xff0c;选项卡也可以上下切换。 转载于:https://www.cnblogs.com/meetrice/archive…

巨蟒python全栈开发flask5

1.轮询&&长轮询&&长连接 2.GeventWebsocket 3.Websocket群聊 4.Websocket单聊 5.websocket握手 6.websocket解密 7.websocket加密转载于:https://www.cnblogs.com/studybrother/p/10717550.html