Codeforces Round #549 (Div. 2) F 数形结合 + 凸包(新坑)
https://codeforces.com/contest/1143/problem/F
题意
有n条形如\(y=x^2+bx+c\)的抛物线,问有多少条抛物线上方没有其他抛物线的交点
题解
- \(y=x^2+bx+c=>y+x^2=bx+c\),转换为点\((x,y+x^2)\)在bx+c的直线上
 - 两个点确定一条抛物线,同时也确定了一条直线
 - 需要选择最上面那些点相邻确定的抛物线,所以维护一个上凸包即可
 - 维护上凸包,当前点在前进方向左边需要向后退,cross(a,b)>=0
 
代码
#include<bits/stdc++.h>
#define MAXN 100005
#define ll long long
using namespace std;
const double eps=1e-8;
struct N{
	long long x,y;
}p[MAXN],S[MAXN];
int n,x,y,t,ans;
bool cmp(N a,N b){
	if(a.x==b.x)return a.y<b.y;
	return a.x<b.x;
}
int chk(N a,N b,N c){
	N A,B;A.x=b.x-a.x;A.y=b.y-a.y;B.x=c.x-a.x;B.y=c.y-a.y;
	return A.x*B.y-B.x*A.y>=0;
}
void add(N a){
	while(t>0&&a.x==S[t-1].x)t--;
	while(t>1&&chk(S[t-2],S[t-1],a))t--;
	S[t++]=a;
}
int main(){
	cin>>n;
	for(int i=0;i<n;i++){
		scanf("%d%d",&x,&y);
		p[i].y=y-(ll)x*x;
		p[i].x=x;
	}
	sort(p,p+n,cmp);
	for(int i=0;i<n;i++)add(p[i]);
	for(int i=0;i<t;i++)if(i==0||S[i].x!=S[i-1].x)ans++;
	printf("%d",ans-1);
}
												
											Codeforces Round #549 (Div. 2) F 数形结合 + 凸包(新坑)的更多相关文章
- Codeforces Round #536 (Div. 2) F 矩阵快速幂 + bsgs(新坑) + exgcd(新坑) + 欧拉降幂
		
https://codeforces.com/contest/1106/problem/F 题意 数列公式为\(f_i=(f^{b_1}_{i-1}*f^{b_2}_{i-2}*...*f^{b_k} ...
 - CodeCraft-19 and Codeforces Round #537 (Div. 2) E 虚树 + 树形dp(新坑)
		
https://codeforces.com/contest/1111/problem/E 题意 一颗有n个点的树,有q个询问,每次从树挑出k个点,问将这k个点分成m组,需要保证在同一组中不存在一个点 ...
 - Codeforces Round #549 (Div. 1)
		
今天试图用typora写题解 真开心 参考 你会发现有很多都是参考的..zblzbl Codeforces Round #549 (Div. 1) 最近脑子不行啦 需要cf来缓解一下 A. The B ...
 - Codeforces Round #499 (Div. 1) F. Tree
		
Codeforces Round #499 (Div. 1) F. Tree 题目链接 \(\rm CodeForces\):https://codeforces.com/contest/1010/p ...
 - [题解] Codeforces Round #549 (Div. 2) B. Nirvana
		
Codeforces Round #549 (Div. 2) B. Nirvana [题目描述] B. Nirvana time limit per test1 second memory limit ...
 - Codeforces Round #485 (Div. 2) F. AND Graph
		
Codeforces Round #485 (Div. 2) F. AND Graph 题目连接: http://codeforces.com/contest/987/problem/F Descri ...
 - Codeforces Round #486 (Div. 3) F. Rain and Umbrellas
		
Codeforces Round #486 (Div. 3) F. Rain and Umbrellas 题目连接: http://codeforces.com/group/T0ITBvoeEx/co ...
 - Codeforces Round #501 (Div. 3) F. Bracket Substring
		
题目链接 Codeforces Round #501 (Div. 3) F. Bracket Substring 题解 官方题解 http://codeforces.com/blog/entry/60 ...
 - Codeforces Round #376 (Div. 2)F. Video Cards(前缀和)
		
题目链接:http://codeforces.com/contest/731/problem/F 题意:有n个数,从里面选出来一个作为第一个,然后剩下的数要满足是这个数的倍数,如果不是,只能减小为他的 ...
 
随机推荐
- Vue 学习记录(一)-创建项目
			
环境准备 node.js vue-cli 安装配置环境 1.下载node.js,使用默认配置安装 . 2.使用npm命令安装国内下载镜像(可选) cmd: npm install -g cnpm ...
 - 多台Linux 7.x服务器具有相同的UUID网络链接参数,肿么办?
			
1.查看多台服务器的UUID网络链接参数是否相同 我这里使用SecureCRT的全部交互功能,直接批量输出 /etc/sysconfig/network-scripts/ifcfg-ens33 的内 ...
 - 【SpringCloud之pigx框架学习之路 】1.基础环境安装
			
[SpringCloud之pigx框架学习之路 ]1.基础环境安装 [SpringCloud之pigx框架学习之路 ]2.部署环境 1.Cmder.exe安装 (1) windows常用命令行工具 下 ...
 - spring  context:component-scan
			
<context:component-scan base-package="com.zhuguang.jack" <!-- 扫描的基本包路径 --> annota ...
 - maplotlib画柱状图并添加标签
			
import json from collections import Counter import matplotlib.pyplot as plt import matplotlib as mpl ...
 - Object.defineProperty-vuejs数据响应基石
			
https://www.jianshu.com/p/07ba2b0c8fca https://juejin.im/post/5b99215d5188255c520cfe22 vuejs数据双向绑定地核 ...
 - cmd 运行bcp 提示:'bcp' 不是内部或外部命令,也不是可运行的程序 或批处理文件。
			
这个问题的原因是:bcp.exe文件的路径不在环境变量中, 我的环境:Windows10 ,SQL server2016(D:) 1.首先查找你的SQL Server2016的安装位置 找到快捷方式, ...
 - golang中,slice的几个易混淆点
			
slice在golang中是最常用的类型,一般可以把它作为数组使用,但是比数组要高效呀.不过,我感觉这个东西用的不好坑太多了.还是需要了解下他底层的实现 slice的结构定义 type slice s ...
 - SpringBoot+Swagger整合
			
0.引言及注意事项 Swagger是一个接口文档工具,依照Swagger可以0配置开发接口.不过要注意,Swagger是基于SpringBoot1.47版本开发的,而SpringBoot现在基本都是是 ...
 - 点击除指定区域外的空白处,隐藏div
			
<script> $(document).click(function (e) { var $target = $(e.target); //点击.zanpl和.quanzipl以外的地方 ...