博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
CF1143F/1142C U2
阅读量:4880 次
发布时间:2019-06-11

本文共 1502 字,大约阅读时间需要 5 分钟。

  • 巧妙的思维题.注意到这里只用两个点就可以确定一根抛物线,联想到两点确定一条直线,尝试转化.
  • \(y=x^2+bx+c\) 就可以写成 \(y-x^2=bx+c\) ,可以发现,将点 \((x_i,y_i)\) 变为 \((x_i,y_i-x_i^2)\) 后,就变成了对每对点连一条直线,答案就是上凸壳的边数.
  • 注意在统计答案时,不能计算两点 \(x\) 相同的直线.
#include
using namespace std;#define ll long long#define mp make_pair#define pii pair
inline int read(){ int x=0; bool pos=1; char ch=getchar(); for(;!isdigit(ch);ch=getchar()) if(ch=='-') pos=0; for(;isdigit(ch);ch=getchar()) x=x*10+ch-'0'; return pos?x:-x;}const int MAXN=1e5+10;int n;struct v2{ double x,y; v2(double x=0,double y=0):x(x),y(y) {} friend double operator * (const v2 &a,const v2 &b) { return a.x*b.y-a.y*b.x; } friend v2 operator + (const v2 &a,const v2 &b) { return v2(a.x+b.x,a.y+b.y); } friend v2 operator - (const v2 &a,const v2 &b) { return v2(a.x-b.x,a.y-b.y); } bool operator < (const v2 &rhs) const { return x==rhs.x?y
=2 && (stk[tp]-stk[tp-1])*(p[i]-stk[tp])<=0) --tp; stk[++tp]=p[i]; } stk[++tp]=p[1];}#define eps 1e-12int main(){ n=read(); for(int i=1;i<=n;++i) { int x=read(),y=read(); p[i]=v2((double)x,(double)(y-1LL*x*x)); } ConvexHull(); if(tp==3) { if(fabs(stk[1].x-stk[2].x)
eps) ++ans; } cout<
<

转载于:https://www.cnblogs.com/jklover/p/10660190.html

你可能感兴趣的文章
接口实现观察者模式
查看>>
四则运算完结篇
查看>>
Objective-C中的类目,延展,协议
查看>>
Python标准模块--Iterators和Generators
查看>>
Introduction Sockets to Programming in C using TCP/IP
查看>>
PHP 简单实现webSocket
查看>>
zookeeper部署搭建
查看>>
navigationController pop回之前控制器
查看>>
汇编语言实验一
查看>>
Web.config配置文件详解(新手必看)
查看>>
selenide总结
查看>>
selenium--控制浏览器和简单元素操作
查看>>
android spannableString 替换 textview 中部分文字
查看>>
java 引用
查看>>
关于Spring注解@Async引发其他注解失效
查看>>
关于学习的一些感悟
查看>>
算法提高 概率计算
查看>>
UVa 12716 - GCD XOR(筛法 + 找规律)
查看>>
Spring Cloud学习资料
查看>>
制作无广告启动盘
查看>>