团体程序设计天梯赛(CCCC) L3012 水果忍者 上凸或下凹的证明
团体程序设计天梯赛代码。体现代码技巧,比赛技巧。 https://github.com/congmingyige/cccc_code





#include <cstdio>
#include <cstdlib>
#include <cmath>
#include <cstring>
#include <algorithm>
using namespace std; #define ll long long
const int maxn=1e4+;
const int inf=1e9;
const double eps=1e-; struct node
{
int x,y;
}d1[maxn],d2[maxn],a[maxn]; ll cross(node c,node a,node b)
{
///两者相乘,也许大于int范围
return 1ll*(c.y-a.y)*(c.x-b.x) - 1ll*(c.x-a.x)*(c.y-b.y);
} bool cmp1(node a,node b)
{
ll v=cross(d1[],a,b);
if (v==)
return d1[].x-a.x<d1[].x-b.x;
return v<;
} bool cmp2(node a,node b)
{
ll v=cross(d2[],a,b);
if (v==)
return d2[].x-a.x<d2[].x-b.x;
return v>;
} /**
两者在v==0处无法统一
**/ int main()
{
int n,x,ymax,ymin,i,j,ind=,m;
double k,b;
d1[].x=inf;
scanf("%d",&n);
for (i=;i<=n;i++)
{
scanf("%d%d%d",&x,&ymax,&ymin);
d1[i]={x,ymax},d2[i]={x,ymin};
if (d1[i].x<d1[ind].x)
ind=i;
} if (n==)
{
printf("%d %d %d %d",-,ymax,,ymax);
return ;
} swap(d1[],d1[ind]);
sort(d1+,d1+n+,cmp1); ///注意是+2(对d1[2]~d1[n]排序)
m=;
for (i=;i<=n;i++)
{
while (m>= && cross(a[m],a[m-],d1[i])<=)
m--;
a[++m]=d1[i];
} for (i=;i<=m;i++)
{
if (a[i].x<a[i-].x)
break;
k=1.0*(a[i].y-a[i-].y)/(a[i].x-a[i-].x);
b=a[i].y-k*a[i].x;
for (j=;j<=n;j++)
if (k*d2[j].x+b<d2[j].y-eps)
break;
if (j==n+)
{
printf("%d %d %d %d",a[i].x,a[i].y,a[i-].x,a[i-].y);
return ;
}
} swap(d2[],d2[ind]);
sort(d2+,d2+n+,cmp2);
m=;
for (i=;i<=n;i++)
{
while (m>= && cross(a[m],a[m-],d2[i])>=)
m--;
a[++m]=d2[i];
}
for (i=;i<=m;i++)
{
if (a[i].x<a[i-].x)
break;
k=1.0*(a[i].y-a[i-].y)/(a[i].x-a[i-].x);
b=a[i].y-k*a[i].x;
for (j=;j<=n;j++)
if (k*d1[j].x+b>d1[j].y+eps)
break;
if (j==n+)
{
printf("%d %d %d %d",a[i].x,a[i].y,a[i-].x,a[i-].y);
return ;
}
} return ;
}
/*
4
-1 5 3
2 4 3
1 5 2
0 4 3
*/
团体程序设计天梯赛(CCCC) L3012 水果忍者 上凸或下凹的证明的更多相关文章
- 团体程序设计天梯赛(CCCC) L3021 神坛 的一些错误做法(目前网上的方法没一个是对的) 和 一些想法
团体程序设计天梯赛代码.体现代码技巧,比赛技巧. https://github.com/congmingyige/cccc_code
- 团体程序设计天梯赛(CCCC) L3019 代码排版 方法与编译原理密切相关,只有一个测试点段错误
团体程序设计天梯赛代码.体现代码技巧,比赛技巧. https://github.com/congmingyige/cccc_code
- 团体程序设计天梯赛(CCCC) L3015 球队“食物链” 状态压缩
团体程序设计天梯赛代码.体现代码技巧,比赛技巧. https://github.com/congmingyige/cccc_code #include <cstdio> #include ...
- 团体程序设计天梯赛(CCCC) L3014 周游世界 BFS证明
团体程序设计天梯赛代码.体现代码技巧,比赛技巧. https://github.com/congmingyige/cccc_code
- 团体程序设计天梯赛(CCCC) L3013 非常弹的球 不同思路
团体程序设计天梯赛代码.体现代码技巧,比赛技巧. https://github.com/congmingyige/cccc_code
- 团体程序设计天梯赛(CCCC) L3009 长城 方法证明
团体程序设计天梯赛代码.体现代码技巧,比赛技巧. https://github.com/congmingyige/cccc_code
- 树状数组+二分答案查询第k大的数 (团体程序设计天梯赛 L3-002. 堆栈)
前提是数的范围较小 1 数据范围:O(n) 2 查第k大的数i:log(n)(树状数组查询小于等于i的数目)*log(n)(二分找到i) 3 添加:log(n) (树状数组) 4 删除:log(n) ...
- PTA L2-001 紧急救援-最短路(Dijkstra)多条最短路找最优解并输出路径 团体程序设计天梯赛-练习集
L2-001 紧急救援 (25 分) 作为一个城市的应急救援队伍的负责人,你有一张特殊的全国地图.在地图上显示有多个分散的城市和一些连接城市的快速道路.每个城市的救援队数量和每一条连接两个城市的快 ...
- PTA|团体程序设计天梯赛-练习题目题解锦集(C/C++)(持续更新中……)
PTA|团体程序设计天梯赛-练习题目题解锦集(持续更新中) 实现语言:C/C++: 欢迎各位看官交流讨论.指导题解错误:或者分享更快的方法!! 题目链接:https://pintia.cn/ ...
随机推荐
- Navicat软件安装
Navicat_10.1.7永久注册码 NAVH-WK6A-DMVK-DKW3
- composer 出现You are running Composer with SSL/TLS protection disabled.
开启php的ssl开启 composer config -g -- disable-tls false
- 转 利用java反射实现两个具有相同属性bean赋值
package com.dobn.bdgcgl.utils; import java.lang.reflect.Field; import java.lang.reflect.Method; publ ...
- kubernetes Helm-chart web UI添加
charts web ui 添加chart仓库 helm repo add cherryleo https://fileserver-1253732882.cos.ap-chongqing.myqcl ...
- puppet一些常用的参数
puppet一些常用的参数 通过@,realize来定义使用虚拟资源 虚拟资源主要来解决在安装包的时候,互相冲突的问题 具体参考这里 简单说下,在定义资源的时候加上@ 例如: @package { & ...
- BZOJ2127happiness——最小割
题目描述 高一一班的座位表是个n*m的矩阵,经过一个学期的相处,每个同学和前后左右相邻的同学互相成为了好朋友.这学期要分文理科了,每个同学对于选择文科与理科有着自己的喜悦值,而一对好朋友如果能同时选文 ...
- 面向对象—的__new__()方法详解
[Python] Python 之 __new__() 方法与实例化 __new__() 是在新式类中新出现的方法,它作用在构造方法建造实例之前,可以这么理解,在 Python 中存在于类里面的构 ...
- 2010 SD - ICPC D - Emergency
D - Emergency Time Limit:1000MS Memory Limit:65536KB 64bit IO Format:%lld & %llu Submit ...
- 【BZOJ1007】【HNOI2008】水平可见直线 几何 单调栈
题目大意 给你\(n\)条直线\(y=kx+b\),问你从\(y\)值为正无穷大处往下看能看到那些直线. \(1\leq n\leq 500000\) 题解 如果对于两条直线\(l_i,l_j\),\ ...
- 七牛云 qshell 使用
七牛云 qshell 控制台工具上传 命令:qshell fput another1 demo.txt /users/tianyang/demo.txt ======================= ...