团体程序设计天梯赛代码。体现代码技巧,比赛技巧。  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 水果忍者 上凸或下凹的证明的更多相关文章

  1. 团体程序设计天梯赛(CCCC) L3021 神坛 的一些错误做法(目前网上的方法没一个是对的) 和 一些想法

    团体程序设计天梯赛代码.体现代码技巧,比赛技巧.  https://github.com/congmingyige/cccc_code

  2. 团体程序设计天梯赛(CCCC) L3019 代码排版 方法与编译原理密切相关,只有一个测试点段错误

    团体程序设计天梯赛代码.体现代码技巧,比赛技巧.  https://github.com/congmingyige/cccc_code

  3. 团体程序设计天梯赛(CCCC) L3015 球队“食物链” 状态压缩

    团体程序设计天梯赛代码.体现代码技巧,比赛技巧.  https://github.com/congmingyige/cccc_code #include <cstdio> #include ...

  4. 团体程序设计天梯赛(CCCC) L3014 周游世界 BFS证明

    团体程序设计天梯赛代码.体现代码技巧,比赛技巧.  https://github.com/congmingyige/cccc_code

  5. 团体程序设计天梯赛(CCCC) L3013 非常弹的球 不同思路

    团体程序设计天梯赛代码.体现代码技巧,比赛技巧.  https://github.com/congmingyige/cccc_code

  6. 团体程序设计天梯赛(CCCC) L3009 长城 方法证明

    团体程序设计天梯赛代码.体现代码技巧,比赛技巧.  https://github.com/congmingyige/cccc_code

  7. 树状数组+二分答案查询第k大的数 (团体程序设计天梯赛 L3-002. 堆栈)

    前提是数的范围较小 1 数据范围:O(n) 2 查第k大的数i:log(n)(树状数组查询小于等于i的数目)*log(n)(二分找到i) 3 添加:log(n) (树状数组) 4 删除:log(n) ...

  8. PTA L2-001 紧急救援-最短路(Dijkstra)多条最短路找最优解并输出路径 团体程序设计天梯赛-练习集

    L2-001 紧急救援 (25 分)   作为一个城市的应急救援队伍的负责人,你有一张特殊的全国地图.在地图上显示有多个分散的城市和一些连接城市的快速道路.每个城市的救援队数量和每一条连接两个城市的快 ...

  9. PTA|团体程序设计天梯赛-练习题目题解锦集(C/C++)(持续更新中……)

    PTA|团体程序设计天梯赛-练习题目题解锦集(持续更新中) 实现语言:C/C++:      欢迎各位看官交流讨论.指导题解错误:或者分享更快的方法!! 题目链接:https://pintia.cn/ ...

随机推荐

  1. python之路--操作系统介绍,进程的创建

    一 .  操作系统的作用: 1:隐藏丑陋复杂的硬件接口,提供良好的抽象接口 2:管理.调度进程,并且将多个进程对硬件的竞争变得有序 二 多道技术: 所谓多道程序设计技术,就是指允许多个程序同时进入内存 ...

  2. python数学第六天【指数族】

  3. css多列居中

    https://jingyan.baidu.com/article/36d6ed1f67d58f1bcf488393.html

  4. oracle11g安装教程完整版

    来自: https://www.2cto.com/database/201701/588135.html 64位WIN7+oracle11g+plsql安装 1.下载Oracle 11g R2 for ...

  5. springboot+jpa+mysql+redis+swagger整合步骤

    springboot+jpa+MySQL+swagger框架搭建好之上再整合redis: 在电脑上先安装redis: 一.在pom.xml中引入redis 二.在application.yml里配置r ...

  6. How to RAMDISK on macOS

    diskutil erasevolume HFS+ 'RAM Disk' `hdiutil attach -nomount ram://8388608`

  7. mvc 学前必知

    MVC无人不知,可很多程序员对MVC的概念的理解似乎有误,换言之他们一直在错用MVC,尽管即使如此软件也能被写出来,然而软件内部代码的组织方式却是不科学的,这会影响到软件的可维护性.可移植性,代码的可 ...

  8. iPhone

    电报交流***vpnpay app不能用了,只要能下载就可以用,谨慎卸载 升级.网络链接不成功的,多试几次,毕竟程序不会运行你的错误操作 ,重新添加链接服务器,继续搞!耐心的进行下面操作即可链接,如有 ...

  9. Nginx 多核cpu负载均衡

    L:122 查看Linux CPU 缓存大小 cat /sys/devices/system/cpu/cpu1/cache/index0/size //指令缓存 cat /sys/devices/sy ...

  10. 扫描某目录下的所有文件的MD5码并导出文件【可执行jar】

    pom <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http:// ...